小迪笔记45课之-PHP应用&SQL二次注入&堆叠执行&DNS带外&功能点&黑白盒条件

文章目录

SQL 注入高级形态【思路精简版】

本版本为思路 / 属性 / 判断逻辑提炼版,用于实战与复盘快速定位,不追求 Payload 细节与代码展开。


一、SQL 二次注入(Second-Order Injection)

核心属性

  • 注入不在输入点触发
  • 恶意数据先被存入数据库
  • 在后续功能中被再次拼接进 SQL 才触发

一句话本质:

程序错误地信任了"数据库里的数据"。


触发链路(最重要)

复制代码
用户可控输入
   ↓
INSERT(插入时被转义 / 看似安全)
   ↓
程序取出数据
   ↓
SELECT / UPDATE 中字符串拼接
   ↓
注入触发

必要条件判断

  • 插入阶段:
    • ❌ 不能直接注入(否则是一阶注入)
    • ✅ 恶意数据可以"作为字符串"成功入库
  • 使用阶段:
    • 存储的数据被直接拼接进 SQL
    • 没有再次使用预编译 / 绑定参数

黑盒 / 白盒快速判断

  • 黑盒
    • 是否存在"添加 / 修改 → 查看 / 再编辑"的功能闭环
  • 白盒
    • 是否存在 insert 后进入 select / update
    • 是否使用字符串拼接 SQL

二、堆叠注入(Stacked Queries)

核心属性

  • 一次请求执行多条 SQL
  • 利用 ; 结束当前语句并继续执行

一句话本质:

程序允许数据库执行"多语句查询"。


必要条件(缺一不可)

  1. 存在 SQL 注入
  2. 未过滤 ;
  3. 中间层支持多语句执行

第 3 条是核心门槛。


快速判断点(PHP 场景)

  • mysqli_query() → 基本不可堆叠
  • mysqli_multi_query() → 高危

实战定位思路

  • CMS / 框架中:
    • 搜索 multi / batch / exec 类数据库接口
  • CTF 中:
    • 尝试 ;show databases 判断是否成立

三、DNSLog 带外注入(OOB Injection)

解决的问题

  • 无回显
  • 无报错
  • 盲注效率极低

一句话定位:

看不到结果时,把数据"送出去"。


核心思路公式

复制代码
敏感数据
 + 攻击者可控域名
 → 目标服务器发起 DNS 解析
 → 攻击者日志中得到数据

注入成立的关键前提(MySQL)

  • 高权限用户(常见 root)
  • 支持 load_file()
  • secure_file_priv 不为 NULL

记忆判断:

NULL 禁止,空最好,有路径则受限。


技术本质

  • 利用 Windows UNC 路径
  • 借助 DNS 解析的"被动外带"特性
  • 一次请求通常只能带回一个字段

适用场景判断

  • 页面完全无回显
  • 但可以确定 SQL 被执行
  • 比时间盲注更稳定时优先考虑

四、三类注入的"思路级对比"

类型 核心信任错误 关键判断点 更偏向
二次注入 信任数据库数据 insert → 再使用 白盒
堆叠注入 信任分号 是否多语句执行 CTF / 白盒
DNSLog 信任无回显即安全 是否可外带 黑盒

五、实战总口诀(记住这个即可)

  • 二次注入:数据什么时候被用第二次?
  • 堆叠注入:数据库能不能一次跑多句?
  • DNSLog:现在有没有任何"东西"能被带出去?

不要急着写 Payload,先判断"注入形态是否成立"。

相关推荐
RainCity1 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
唐青枫2 天前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
掉头发的王富贵4 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
LinXunFeng9 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
两个人的幸福9 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
云技纵横11 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
BingoGo11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户30745969820712 天前
PHP 扩展——从入门到理解
php