盲注检测思路
盲注指页面既没有报错回显、也没有数据直接展示的注入场景,只能通过间接信号判断:一是布尔信号——构造真、假两个等价条件的请求,比较状态码、响应长度或内容差异;二是时间信号——对比普通请求与含延迟条件请求的耗时。这两类信号都容易受干扰:网络抖动、缓存命中、页面本身含动态内容、CDN 与反向代理的行为都会造成差异。因此采样必须多次并取中位数,且先确认响应未被缓存。盲注结论要谨慎,先把差异用普通业务操作复现一遍,确认确实来自参数处理再记录。
基本信息
| 布尔信号 | 构造真假两个等价请求,比较状态码、长度或内容差异 |
|---|---|
| 时间信号 | 对比普通请求与含延迟条件请求的耗时 |
| 采样要求 | 每类信号至少 3 次,取中位数,排除抖动 |
| 干扰源 | 缓存、CDN、动态内容、网络抖动 |
| 结论要求 | 先用普通操作复现差异,再记录为疑似问题 |
典型使用场景
- 无报错页面:错误被统一处理,看不到数据库信息
- 数据不回显:接口只返回状态,不返回查询结果
- 接口型应用:返回结构固定,只能比较差异
- 加固后环境:开启了错误隐藏与统一异常处理
- 复测验证:确认修复后差异是否消失
排查要点
排查要点
布尔:同一参数 3 组真/假条件对比,排除页面动态内容干扰
时间:测 3 次基准耗时,再测 3 次带延迟条件请求,取中位数
缓存:确认响应未被 CDN 或反向代理缓存(看缓存头)
# 结论前先用普通业务操作复现一次差异
# 记录采样数据与时间,便于复核信号与干扰排除
| 信号 | 干扰来源 | 排除方式 |
|---|---|---|
| 布尔差异 | 页面本身动态内容 | 多次采样,比对同一状态下的稳定性 |
| 布尔差异 | 缓存命中 | 检查缓存头,加随机参数区分 |
| 时间差 | 网络抖动 | 取中位数,差异需远大于抖动幅度 |
| 时间差 | 慢查询与批处理 | 避开批量任务时段,确认业务基线 |
| 状态码变化 | 反向代理行为 | 结合响应体内容判断,不单看状态码 |
盲注信号容易误判:先把响应差异用普通业务操作复现一遍,确认差异确实来自参数处理再记录。
单次耗时差就下结论会产生大量误报;忽略等长响应里的内容差异、只比长度,也会漏掉真实问题。