| name | eni-redteam-cache-poison-detail-pack |
| description | [DOCUMENTATION ONLY] [仅文档] 授权范围内 Web 缓存投毒测试的领域路由与边界手册,覆盖未纳入缓存键的头与参数、缓存欺骗与 CDN 特有行为。当任务落入缓存投毒领域、需要明确范围、证据、转向或退出标准时加载。 |
Web 缓存投毒纵深手册
文档性质:本手册属于纯文档资源(DOCUMENTATION ONLY / 仅文档),提供方法框架与检查清单,不捆绑任何可执行脚本。
一、手册职责与领域声明
当前任务归类于 缓存投毒测试 领域,测试范围限定在 Web 缓存行为面:未纳入缓存键的请求头与参数投毒、缓存欺骗、CDN 与源站键不一致等。
本手册只为代理解决三件事:划清测试边界、受阻时给出转向选项、收尾时卡住证据质量。它不教授固定攻击步骤,不替代用户授权范围,不把任何推测当作结论。
若 scope、target 或授权边界未明确,任务直接进入 blocked 或 plan-only 状态,不进行真实执行。
二、攻击面地形
缓存层的核心缺陷在于"缓存键"与"响应内容"之间的缝隙。凡影响响应内容却不参与键计算的输入——X-Forwarded-Host 之类的前端转发头、被源站反射的查询参数、Cookie 中只被解析不参与键的字段——都可以让攻击者把毒化响应种进共享缓存,再等着无辜访客命中。CDN 与源站的键规则不同步时,缝隙还会成倍放大。
| 入口 | 典型载体 | 观察方式 |
|---|
| 未键控请求头 | X-Forwarded-Host、X-Forwarded-Scheme | 投毒后新会话命中差异 |
| 未键控查询参数 | 被响应反射的参数 | 键相同内容不同的缓存命中 |
| 缓存键边界 | 路径规范化差异 | 同路径不同键的缓存行为 |
| CDN 转发层 | CDN 与源站键规则差异 | 分层分别验证命中行为 |
| 缓存欺骗面 | 扩展名混淆路径 | 私有响应被当作静态资源缓存 |
三、变体速览
| 变体 | 触发条件 | 高价值场景 |
|---|
| Header 投毒 | X-Forwarded-Host 被反射进响应 | 重定向劫持、注入缓存脚本 |
| 参数投毒 | unkeyed 参数进入响应 | 覆盖页面内容,持久影响访客 |
| 缓存欺骗 | 路径混淆骗取私有响应缓存 | 窃取他人敏感页面内容 |
| CDN 差异 | 源站与 CDN 键不一致 | 穿透 CDN 防护直接命中源站 |
四、执行纪律与禁区
- 只围绕用户明确提供或授权的目标工作,不超出目标域名、IP、应用或系统边界。
- 不得对生产缓存执行持久性投毒。
- 证据纪律:不伪造、不夸大、不补写不存在的证据;不在缺少证据时声明任务完成。
- 不把候选风险、公开 CVE 或组件指纹直接等同于可利用漏洞——指纹只是线索,验证才是结论。
- 若 scope、target 或授权边界不明确,进入 blocked 或 plan-only,不进行真实执行。
五、受阻转向
- 无法确定缓存键 → 使用 Param Miner 或手动 Fuzz 未键控输入,逐个验证是否影响响应。
- 缓存不命中 → 调整 cache-buster 参数,检查 Vary 头是否引入了额外键维度。
- CDN 层规则不同 → 分别测试源站与 CDN 的键计算行为,寻找差异缝隙。
- 所有缓存行为安全 → 记录已测试缓存点,回退到上级知识库重新选择测试方向。
六、收尾与证据标准
正向退出(有发现)
- 关键结论至少具备 supported 级证据;漏洞成立、影响判断或最终报告必须有 verified 级证据。
- 交付 reproduction 证据包,须包含:投毒请求(含未键控输入);受害者请求获得被投毒响应的证明;缓存持久时间与影响范围。
- 每份 artifact 能说明来源、目标、时间、观察结果和判断依据。
负向退出(未发现)
- 最少尝试次数:3。
- 记录已测试缓存点与失败原因,提交 negative report 后回退上级。
- 措辞纪律:只输出"当前证据下未发现",不输出"确认不存在"。