当前位置: 首页 > news >正文

安全面试3

文章目录

  • 一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名
  • 用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做
  • 宽字节注入
    • 原理
    • 防御宽字节注入的方法
  • 基于黑白名单的修复,现在的生产基本都是用的docker,ip是随时变的,而且docker重启后可能什么都不一样了,怎么做一个修复
  • SSRF漏洞出现点
  • 木马查杀流程
  • sqlserver提权方式
  • mysql的提权
  • redis的漏洞
  • php原生的敏感函数
    • 代码执行类函数
    • 系统命令执行类函数
    • 文件操作类函数
    • 数据库操作类函数
    • 其他敏感函数

一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名

  1. 通过公开信息手动收集:访问该单位的官方网站,通常在页面底部会列出其相关的其他域名。
  2. 通过域名注册信息查询:WHOIS查询:通过WHOIS工具(如 Whois Lookup)查询单位拥有的域名。输入已知的域名,查看注册信息中的“Registrant Name”或“Organization”字段,可能会发现其他域名。
  3. 通过SSL证书信息
  4. 通过搜索引擎:site:example.com “单位名称”:查找与单位名称相关的域名。
    intext:“单位名称” inurl:about:查找单位介绍页面中提到的域名。
  5. 域名监控工具:使用工具如 DomainTools 或 Farsight DNSDB,监控单位名称或关键词相关的域名注册情况。

用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做

  1. 大多数数据库系统提供了标识符引用符,用于处理包含特殊字符的列名或表名。(mysql使用反引号)
  2. 使用ORM框架:原理:ORM(对象关系映射)框架会自动处理列名和表名的引用问题,避免手动拼接SQL语句。

宽字节注入

原理

某些字符集(如GBK、BIG5)使用多字节编码,即一个字符可能由多个字节组成。例如,在GBK编码中,’ 的单字节编码是 0x27,而 0xbf27 是一个合法的宽字符。
当应用程序对用户输入进行转义时(如将 ’ 转义为 '),如果数据库使用宽字符集,攻击者可以构造特殊输入,使转义字符 \ 被“吃掉”。

防御宽字节注入的方法

  1. 统一字符集
  2. 禁用宽字符集
  3. 正确使用转义函数:使用数据库驱动的参数化查询或预处理语句,而不是手动转义。
  4. 编码转换:在接收到用户输入后,将其转换为统一的字符集(如UTF-8)。

基于黑白名单的修复,现在的生产基本都是用的docker,ip是随时变的,而且docker重启后可能什么都不一样了,怎么做一个修复

  1. 使用服务标识代替 IP 地址:在容器化环境中,IP 地址是动态分配的,但服务名称(Service Name)或容器名称是相对稳定的。可以通过服务标识(如服务名、标签、元数据)来替代 IP 地址。
  2. 动态更新黑白名单:结合容器编排平台(如 Kubernetes、Docker Swarm)的 API,获取容器的实时 IP 并更新到黑白名单中。
  3. 基于标签或元数据的黑白名单:为容器打上标签(Labels)或元数据(Metadata),并根据这些标签动态生成黑白名单。

SSRF漏洞出现点

  1. 分享:通过URL地址分享网页内容
  2. 转码服务(通过URL地址把原地址的网页内容调优,使其适合手机屏幕的浏览)
  3. 在线翻译
  4. 图片加载与下载:通过URL地址加载或下载图片
  5. 图片、文章收藏功能
  6. 未公开的api实现及调用URL的功能
  7. 从URL关键字中寻找

木马查杀流程

  1. 查看异常连接
  2. 查看进程名字及服务
  3. 删除进程并查看系统配置
  4. 查找病毒注册表开机启动项
  5. 删除病毒源文件
  6. 删除一些后门程序之类的

sqlserver提权方式

  1. xp_cmdshell扩展存储过程提权
  2. xp_dirtree写入文件提权
  3. sp_oacreate提权
  4. xp_regwrite映像
  5. 沙盒提权
  6. CLR提权
  7. Agent Job提权
  8. R和python脚本执行提权
  9. 差异备份写入webshell

mysql的提权

  1. 利用 UDF(用户定义函数)提权:MySQL 支持用户定义函数(UDF),攻击者可以通过加载恶意的共享库(如 .so 或 .dll 文件)来执行系统命令。上传恶意共享库到服务器。
    使用 CREATE FUNCTION 加载共享库。
    调用 UDF 执行系统命令。
  2. 利用 MySQL 日志文件提权:MySQL 的日志文件(如慢查询日志、通用日志)可以被用来写入恶意代码,从而执行系统命令。启用日志功能并设置日志文件路径。
    写入恶意代码到日志文件。
    通过日志文件执行系统命令。
  3. 利用 MySQL 配置文件提权:MySQL 配置文件(如 my.cnf)可能被攻击者修改,从而加载恶意插件或修改权限。
  4. 利用 MySQL 弱口令提权:如果 MySQL 用户使用弱口令,攻击者可以通过暴力破解获取管理员权限。
  5. 利用 MySQL 漏洞提权
  6. 利用操作系统提权:如果 MySQL 以 root 权限运行,攻击者可以通过 MySQL 提权到操作系统 root 权限。
  7. 利用 SQL 注入提权:通过 SQL 注入漏洞,攻击者可以执行管理员操作(如创建用户、修改权限)。

redis的漏洞

  1. 未授权访问漏洞:Redis 默认监听在所有网络接口(0.0.0.0)且无需密码认证,攻击者可以直接访问 Redis 服务并执行任意操作。
  2. SSH 密钥写入漏洞:攻击者可以通过 Redis 的未授权访问漏洞,将公钥写入目标服务器的 ~/.ssh/authorized_keys 文件,从而获取 SSH 访问权限。
  3. 主从复制漏洞:攻击者可以通过 Redis 的主从复制功能,将恶意数据同步到从节点,从而实现数据篡改或 RCE。
  4. Lua 沙盒逃逸漏洞:Redis 的 Lua 脚本执行环境可能存在沙盒逃逸漏洞,攻击者可以执行任意系统命令。
  5. 持久化文件漏洞:Redis 的持久化文件(如 RDB 或 AOF)可能被篡改,导致数据损坏或恶意代码执行。
  6. 信息泄露漏洞:Redis 的 INFO 命令可能泄露敏感信息(如服务器配置、内存使用情况等)。
  7. Redis 6.0 的 ACL 功能:Redis 6.0 引入了访问控制列表(ACL)功能,但配置不当可能导致权限绕过。
  8. Redis 暴露在公网:Redis 服务暴露在公网,可能被攻击者扫描并利用。

php原生的敏感函数

代码执行类函数

  1. eval()
  2. assert()
  3. create_function()
  4. preg_replace():创建一个匿名函数。create_function(‘’, $_GET[‘code’]); 可能导致代码执行。

系统命令执行类函数

  1. exec()
  2. system()
  3. passthru()
  4. shell_exec()
  5. popen()

文件操作类函数

  1. include()
  2. include_once()
  3. require()
  4. require_once()
  5. file_get_contents()
  6. fopen()
  7. unlink()
  8. move_uploaded_file()

数据库操作类函数

  1. mysql_query()
  2. mysqli_query()
  3. pg_query()

其他敏感函数

  1. extract():变量覆盖
  2. parse_str():变量覆盖
  3. unserialize()

相关文章:

安全面试3

文章目录 一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做宽字节注入原理防御宽字节注入的方法 基于黑白名单的修复&…...

软件测试:1、单元测试

1. 单元测试的基本概念 单元(Unit):软件系统的基本组成单位,可以是函数、模块、方法或类。 单元测试(Unit Testing):对软件单元进行的测试,验证代码的正确性、规范性、安全性和性能…...

球队训练信息管理系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装球队训练信息管理系统软件来发挥其高效地信息处理的作用&a…...

【Bluedroid】AVRCP 连接源码分析(二)

接着上一篇【Bluedroid】AVRCP 连接源码分析(一)-CSDN博客,继续AVRCP连接的源码分析。 getcapabilities_cmd packages/modules/Bluetooth/system/btif/src/btif_rc.cc /***************************************************************************** Function …...

OSS(对象存储服务)

OSS(对象存储服务) 是一种用于存储和管理非结构化数据的云存储服务,其核心设计面向海量数据的高扩展性、高可靠性和低成本存储。以下从定义、核心原理、架构特点和应用场景等方面详细介绍: 一、什么是OSS? OSS&#x…...

《深入理解JVM》实战笔记(二): 类加载机制与类加载器

序言 Java 语言的强大之处之一在于其动态加载的能力,使得 Java 程序可以在运行时加载新的类,而不需要在编译时确定所有的类信息。这一切都离不开 JVM 的类加载机制。本篇博客将详细探讨 JVM 的类加载过程以及类加载器的工作原理,帮助你更深入…...

ChromeDriver下载

平时为了下个驱动,到处找挺麻烦,收集了很多无偿分享给需要的人,仅供学习和交流。 ChromeDriver 102.0.5005.61 ChromeDriver 105.0.5195.102 ChromeDriver 108.0.5359.71 ChromeDriver 111.0.5563.64 ChromeDriver 116.0.5845.97 Chrom…...

《深度学习实战》第1集:深度学习基础回顾与框架选择

本专栏系列博文旨在帮助读者从深度学习的基础知识逐步进阶到前沿技术,涵盖理论、实战和行业应用。每集聚焦一个核心知识点,并结合实际项目进行实践,避免空谈理论,简洁明快,快速切入代码,所有代码都经过验证…...

Docker 部署AnythingLLM

两个指令搞定 1.下载镜像 docker pull mintplexlabs/anythingllm 2.运行容器 export STORAGE_LOCATION$HOME/anythingllm mkdir -p $STORAGE_LOCATION chmod -R 777 $STORAGE_LOCATION touch "$STORAGE_LOCATION/.env" docker run -d -p 3001:3001 \ --cap-add SY…...

泰山派RK3566移植QT,动鼠标时出现屏幕闪烁

总结: 交叉编译到 泰山派rk3566跑调海康摄像头的qt应用程序失败了。 X11无效窗口。 移植QT注意 屏幕分辨率不要改。改了执行QT的时候,framebuffer识别不出设备。 命令行安装QT-Creator sudo install 类似的指令安装Qt-Creator时,可能找不到编…...

关于Java 反射的简单易懂的介绍

目录 #0.总览 #1. 类的反射 ①介绍 ②获取 ③作用 获取构造函数: 创建实例: 字段操作: 方法操作: 获取修饰符: #2.总结 #0.总览 反射,官方是这样介绍它的: Reflection is a …...

市场趋势中突破确认的多维度判断方法

波动率突破策略是众多交易者广泛采用的重要交易策略之一。而在这一策略中,准确判断突破是否有效,是决定交易成败的关键环节。仅仅依据单一因素来确认突破,往往会使交易者陷入误判的困境,导致不必要的损失。因此,采用多…...

网络空间安全(2)应用程序安全

前言 应用程序安全(Application Security,简称AppSec)是一个综合性的概念,它涵盖了应用程序从开发到部署,再到后续维护的整个过程中的安全措施。 一、定义与重要性 定义:应用程序安全是指识别和修复应用程序…...

【MyBatis】CRUD、配置解析、ResultMap、分页实现

目录标题 1、Mybatis简介1.1、什么是MyBatis1.2、持久化1.3、持久层1.4、为什么需要MybatisMyBatis的优点 2.1、代码演示搭建实验数据库导入MyBatis相关 jar 包 03、CRUD操作3.1、namespace3.2、select3.3、insert3.4、update3.5、delete 04、MyBatis配置解析4、配置解析4.3、m…...

Linux系统编程之高级信号处理

概述 在前一篇文章中,我们介绍了signal函数、sigaction函数等基本的信号处理方法。在本篇中,我们将介绍信号处理的一些高级用法,包括:阻塞与解除阻塞、定时器等。 阻塞与解除阻塞 有时候,我们不希望某个信号立即被处理…...

深度学习驱动的车牌识别:技术演进与未来挑战

一、引言 1.1 研究背景 在当今社会,智能交通系统的发展日益重要,而车牌识别作为其关键组成部分,发挥着至关重要的作用。车牌识别技术广泛应用于交通管理、停车场管理、安防监控等领域。在交通管理中,它可以用于车辆识别、交通违…...

钉钉快捷免登录 通过浏览器打开第三方系统,

一、钉钉内跳转至浏览器的实现 使用钉钉JSAPI的跳转接口 在钉钉内通过dd.biz.navigation.openLink方法强制在系统浏览器中打开链接。此方法需在钉钉开发者后台配置应用权限,确保应用具备调用该API的资格37。 示例代码: dd.ready(() > {dd.biz.navigat…...

力扣——杨辉三角

题目链接&#xff1a; 链接 题目描述&#xff1a; 思路&#xff1a; 直接找规律&#xff0c;按照数学的思路来 每一行的列最大索引 < 行索引 实现代码&#xff1a; class Solution {public List<List<Integer>> generate(int numRows) {List<List<In…...

stm32108键C-B全调性_动态可视化乐谱钢琴

108键全调性钢琴 一 基本介绍1 项目简介2 实现方式3 项目构成 二 实现过程0 前置基本外设驱动1 声音控制2 乐谱录入&基础乐理3 点阵屏谱点动态刷新4 项目交互控制5 录入新曲子过程 三 展示&#xff0c;与链接视频地址1 主要功能函数一览2 下载链接3 视频效果 一 基本介绍 …...

mysql之规则优化器RBO

文章目录 MySQL 基于规则的优化 (RBO)&#xff1a;RBO 的核心思想&#xff1a;模式匹配与规则应用RBO 的主要优化规则查询重写 (Query Rewrite) / 查询转换 (Query Transformation)子查询优化 (Subquery Optimization) - RBO 的重中之重非相关子查询 (Non-Correlated Subquery)…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...