小迪笔记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,先判断"注入形态是否成立"。

相关推荐
智嵌电子2 小时前
【笔记篇】【硬件基础篇】模拟电子技术基础 (童诗白) 第6章 信号的运算和处理
笔记
小韩博2 小时前
小迪之盲注第44课
android·网络安全·adb
virtual_k1smet2 小时前
梧桐·鸿鹄-中移链assistant-level
笔记·区块链
默默前行的虫虫2 小时前
nicegui网页多用户数据隔离总结
数据库·sql
丝斯20113 小时前
AI学习笔记整理(36)——自然语言处理
人工智能·笔记·学习
94621931zyn63 小时前
观影统计 - Cordova 与 OpenHarmony 混合开发实战
笔记
virtual_k1smet4 小时前
梧桐·鸿鹄-大数据professional
大数据·笔记
stars-he4 小时前
单相双半波可控整流电路的MATLAB仿真设计
笔记·学习·matlab
竹等寒4 小时前
TryHackMe-SOC-Section 3:核心 SoC 解决方案
网络·网络安全