渗透课程学习总结

一、 主流框架漏洞核心分析 ------ 以 ThinkPHP 5/6 为例

现代 Web 应用多基于成熟框架开发,框架自身的安全缺陷往往会引发批量性漏洞,ThinkPHP 作为国内主流 PHP 框架,其历史漏洞具有典型代表性,核心漏洞类型及利用逻辑如下:

(一)ThinkPHP 5 核心高危漏洞
  1. SQL 注入漏洞核心问题在于框架对特定参数处理时缺乏严格过滤,不同版本存在差异化影响,支持联合查询注入、布尔盲注、时间盲注等多种注入方式。攻击者可通过构造特殊 URL 参数(如?s=index/index/index&ids[0]=bind&ids[1]=0 and updatexml(1,concat(0x7e,user(),0x7e),1)#),利用错误回显提取数据库用户、库名、表名等敏感信息。

  2. 文件包含漏洞模板渲染过程中未严格校验模板文件路径,存在路径遍历风险。攻击者可构造特殊 URL 路径,绕过路径限制包含系统敏感文件(如/etc/passwd)或恶意脚本,实现信息窃取或后续渗透。

  3. 代码执行漏洞部分参数处理逻辑存在缺陷,未对用户输入进行有效过滤,攻击者可通过构造特殊参数(如?s=index/index/index&name={${phpinfo()}}),直接注入并执行任意 PHP 代码,进而实现对目标系统的控制。

  4. 反序列化漏洞5.0.X、5.1.X、5.2.X 全系列版本存在不安全反序列化操作,攻击者通过分析框架核心代码,挖掘可利用的魔术方法与函数调用链(POP 链),构造特殊序列化字符串,通过 Cookie、POST 参数等方式传入目标系统,最终触发恶意代码执行。

(二)ThinkPHP 6 核心漏洞
  1. 任意文件创建漏洞文件上传功能未严格校验存储路径,攻击者可通过 BurpSuite 等工具修改上传请求包,构造特殊路径,在目标系统任意目录创建文件,常用于植入后门脚本,为后续持久化控制提供支撑。

  2. 反序列化漏洞全系列版本存在不安全反序列化问题,利用逻辑与 ThinkPHP 5 类似,核心在于构造适配版本的 POP 链及序列化字符串,传入系统后触发恶意代码执行,实现高危操作。

二、 协议级漏洞实例 ------CVE-2024-27304

除框架漏洞外,数据库相关组件的协议级漏洞也具有极强的隐蔽性与危害性,CVE-2024-27304(PostgreSQL pgx 库 SQL 注入漏洞)便是典型代表。

  1. 漏洞核心信息该漏洞影响 pgx v5.5.3 版本,属于协议级 SQL 注入漏洞,核心原理是攻击者发送超大体积 Payload,导致 PostgreSQL 协议消息大小溢出,突破 pgx 库的防护机制,进而实现 SQL 注入。

  2. 漏洞利用关键利用前需通过 Docker 搭建专属测试环境,核心步骤为克隆测试项目、部署容器、验证服务可用性;随后修改漏洞利用脚本(如 Q_nop_sled.py)的目标参数,运行脚本触发消息溢出,注入恶意 SQL 代码实现攻击(如创建管理员账号)。

  3. 注意事项该漏洞利用会占用大量服务器内存,可能引发 DoS(拒绝服务),且需严格遵守网络安全法规,仅可在授权测试环境中进行验证。

三、 SQL 注入基础实操 ------sqli-labs 核心关卡演练

sqli-labs 是 SQL 注入学习的必备环境,其中 sqli-labs-php7-master 适配高版本 PHP,可快速掌握各类注入类型的核心技巧,关键关卡如下:

(一) 环境搭建核心步骤
  1. 解压压缩包至 Web 服务器根目录,配置sql-connections/sqli-connect.php中的数据库账号、密码;
  2. 访问环境初始化页面,完成数据库搭建,即可开始注入演练。
(二) 核心注入类型实操
  1. 基于错误的 SQL 注入(Less-1)注入点为单引号闭合的 GET 参数,攻击者通过构造异常参数触发 SQL 错误回显,利用union select语句定位回显位置,逐步提取数据库名称、用户、表名等信息,核心步骤为验证注入点→验证注释符→定位回显→提取敏感数据。

  2. 数字型 SQL 注入(Less-2)参数为未加引号的数字型 GET 参数,无需闭合即可构造注入语句,利用and 1=2验证注入点存在后,参照基于错误的注入步骤,通过联合查询提取敏感信息,操作更简洁高效。

  3. 布尔盲注(Less-5)页面无直接数据回显,仅通过返回状态(正常 / 异常)判断注入结果。攻击者构造布尔表达式,逐步猜解数据库名称长度、单个字符,再延伸至表名、字段名,该方式耗时较长,常需配合脚本工具提高效率。

  4. 时间盲注(Less-9)页面无数据回显且布尔状态无明显差异,需通过时间延迟函数判断注入结果。核心是利用sleep()或复杂查询制造延迟,结合if()条件判断,逐步猜解敏感信息,适用于防御较严格的场景。

四、 SQL 注入进阶技巧 ------ 绕过与提权

在实际渗透测试中,目标系统往往配备 WAF 防护、采用预编译机制,单纯的基础注入难以奏效,需掌握各类进阶绕过与提权技巧。

(一) WAF 绕过核心技巧

WAF 是阻挡注入攻击的第一道屏障,常见绕过方式可分为四类:

  1. 注释混淆:通过插入/**/等数据库支持的注释符,拆分敏感关键词(如UNI/**/ON SEL/**/ECT),规避 WAF 正则匹配;
  2. 空白符变异:使用%0b%a0等非标准空白符替代空格,WAF 难以识别但数据库可正常解析;
  3. 字符编码 / 变形:通过 URL 编码、大小写混合(如SeLeCt)、CHAR 函数拼接还原关键词,绕过关键字过滤;
  4. 正则回溯耗尽:构造超长冗余语句,迫使 WAF 正则引擎回溯次数耗尽超时,跳过检测(需平衡冗余长度与语句可用性)。
(二) 特殊场景注入技巧
  1. HPP(全局参数污染)注入利用应用程序对重复参数的解析顺序差异,传递重复参数覆盖原有值,绕过单参数过滤(如?id=1&id=UNION SELECT 1,2,3),适用于过滤逻辑不完善的应用。

  2. 宽字节注入多见于 GBK 编码应用,核心是利用%df等宽字节字符 "吃掉" 转义符\,还原单引号实现逃逸。例如注入?id=1%df',转义后变为%df%5c%27,GBK 编码解析为 "運'",触发注入。

  3. 预编译机制绕过PDO、PostgreSQL 等预编译机制理论上可防御注入,但存在 "伪预编译"(PHP<5.3.6)与 "SQL 结构可控" 两个漏洞点:预编译仅对参数值有效,对表名、列名等结构部分无效,若这些部分由用户控制,仍可构造恶意语句触发注入;同时可利用数据库语法特性(如 PostgreSQL 嵌套注释、内置函数)绕过预编译检测。

(三) SQL 注入进阶危害 ------RCE(远程代码执行)

SQL 注入的终极危害是实现 RCE,完全控制目标服务器,核心实现方式因数据库而异:

  1. MySQL:满足知晓绝对路径、具备写入权限、路径可写三个条件,通过into outfile写入 webshell;或利用 UDF 函数执行系统命令;
  2. PostgreSQL:通过COPY命令写入文件,或利用dblink等扩展插件执行系统命令,实现条件更为苛刻,但危害致命。

五、 SQL 注入常见面试考点与核心防御

(一) 核心面试考点梳理
  1. 二次注入:核心是 "存入安全、取出危险",用户输入通过参数化查询存入数据库后,取出拼接 SQL 时未过滤,触发注入(如注册admin'#,修改密码时截断语句修改管理员密码);
  2. DNS 外带数据:利用 XXE、LOAD_FILE 等函数,将敏感数据拼接至域名中,通过监控 DNS 解析日志获取数据,适用于无回显场景;
  3. 堆叠查询利用:在 MSSQL 环境中,通过;分隔多条 SQL 语句,开启xp_cmdshell组件执行系统命令,需高权限账户支持;
  4. 盲注绕过:过滤sleep()BENCHMARK()后,可通过复杂多表查询、高耗资源运算、DNS 查询制造延迟。
(二) 核心防御方案
  1. 技术层面:优先使用参数化查询 / 真预编译(关闭 PDO 模拟预编译),统一使用 UTF-8 编码规避宽字节问题,及时更新框架与组件版本;
  2. 逻辑层面:对用户输入进行严格过滤与白名单校验,尤其是表名、列名等 SQL 结构部分;对从数据库取出的数据,再次使用前进行过滤处理;
  3. 部署层面:部署高性能 WAF,开启数据库审计日志,限制数据库用户权限,禁止高危函数(如into outfilexp_cmdshell)。

六、 学习总结与能力沉淀

  1. 漏洞环境搭建能力:熟练使用 Docker、Web 服务器搭建各类漏洞测试环境,为复现与分析提供支撑;
  2. 漏洞识别与利用能力:能够快速识别各类 SQL 注入、框架漏洞,构造 Payload 实现信息窃取与远程控制;
  3. 防御与绕过思维:理解各类防护机制的原理与缺陷,掌握针对性绕过技巧,同时能够提出合理的安全防护方案。
相关推荐
千寻技术帮2 小时前
10404_基于Web的校园网络安全防御系统
网络·mysql·安全·web安全·springboot
沐芊屿2 小时前
华为交换机配置M-LAG
服务器·网络·华为
会员源码网2 小时前
交易所源码搭建全教程
网络
枷锁—sha3 小时前
【SRC】越权漏洞检测
运维·服务器·网络·安全·网络安全·系统安全
qqssss121dfd3 小时前
STM32H750XBH6的ETH模块移植LWIP
网络·stm32·嵌入式硬件
酣大智3 小时前
参考模型--物理层
网络
188号安全攻城狮3 小时前
【PWN】HappyNewYearCTF_8_ret2csu
linux·汇编·安全·网络安全·系统安全
啥都想学点4 小时前
kali 基础介绍(Command and Control、Exfiltration)
安全·网络安全
B2_Proxy4 小时前
IP 来源合规性,正在成为全球业务的隐性门槛
网络·爬虫·网络协议·安全