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

相关推荐
JaguarJack20 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo20 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack2 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
西岸行者2 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
starlaky2 天前
Django入门笔记
笔记·django
QQ5110082852 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
勇气要爆发2 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
WeiXin_DZbishe2 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5
tryCbest2 天前
数据库SQL学习
数据库·sql