mcpField
P
pentest-http-smuggling

pentest-http-smuggling

github.com/jd-opensource安全31547 次安装28 周前更新
代码仓库

关于 pentest-http-smuggling

面向获授权安全评估的 HTTP 请求走私测试技能,涵盖主机头与缓存攻击。它引导测试人员识别代理链路、执行协议测试并验证影响。

主要功能

  1. 01代理与技术栈指纹识别
  2. 02CL.TE、TE.CL 和 TE.TE 测试
  3. 03HTTP/2 降级测试
  4. 04缓存投毒与 Host 头测试
  5. 05通过概念验证确认影响

适用场景

  1. 01评估代理与后端的解析差异
  2. 02测试 HTTP/2 到 HTTP/1 的转换
  3. 03验证缓存投毒风险
  4. 04记录请求劫持影响

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jd-opensource/joysafeter --skill pentest-http-smuggling

安装后在 Claude Code 中输入/pentest-http-smuggling确认已加载。

附带文件references/tools.mdreferences/workflows.md

详细介绍

渗透测试 HTTP 请求走私

目的

检测并利用前端代理与后端服务器在 HTTP 请求解析方面的差异。这些攻击可绕过安全控制、污染缓存并劫持请求——而标准污点分析流程完全无法检测此类问题。

前提条件

授权要求
  • 书面授权,明确包含协议级测试范围
  • 基础设施情况——识别链路中的所有反向代理、CDN 和负载均衡器
  • 回滚计划,适用于缓存污染测试(可访问 CDN 清除功能)
  • 紧急联系人,供基础设施团队联系(请求走私可能影响其他用户)
环境设置
  • 具备原始套接字功能的 Python 3.x,用于构造 HTTP 请求
  • Burp Suite Professional 和 HTTP Request Smuggler 扩展
  • 支持 HTTP/2 的 curl(--http2-prior-knowledge)
  • 用于时序敏感攻击的 Turbo Intruder
  • 用于响应分析的网络抓包工具(Wireshark/tcpdump)

核心工作流

  1. 技术栈指纹识别:识别反向代理(nginx、HAProxy、Cloudflare、AWS ALB)、CDN 和负载均衡器。确定对 HTTP 版本(HTTP/1.1、HTTP/2)的支持情况及解析行为。
  2. CL.TE 请求走私:构造前端使用 Content-Length、后端使用 Transfer-Encoding 的请求。观察解析差异及请求边界混淆。
  3. TE.CL 请求走私:反向场景——前端使用 Transfer-Encoding,后端使用 Content-Length。使用混淆的 TE 标头进行测试。
  4. TE.TE 请求走私:两端都使用 Transfer-Encoding,但可通过标头混淆(大小写、空白字符、重复标头)使其中一端产生错误解析。
  5. HTTP/2 降级:利用反向代理将 H2 转换为 H1 的过程。通过伪标头进行标头注入、在 H2 标头中进行 CRLF 注入,以及通过 H2 CONTINUATION 帧拆分请求。
  6. 缓存投毒:使用攻击者控制的内容污染缓存响应。测试缓存键与缓存内容之间的差异。通过不同的客户端会话进行验证。
  7. Host 标头攻击:Host 标头注入、密码重置投毒、基于路由的 SSRF,以及通过含糊不清的 Host 标头进行 Web 缓存投毒(WSTG-INPV-17)。
  8. 影响验证:以概念验证(PoC)演示缓存投毒、凭据窃取、请求劫持或绕过安全控制。

WSTG 覆盖范围

WSTG ID测试名称状态
WSTG-INPV-15HTTP 请求走私✅
WSTG-INPV-17Host 标头注入✅

工具类别

类别工具用途
走私检测smuggler.py、HTTP Request Smuggler (Burp)自动检测 CL.TE/TE.CL
HTTP/2 测试h2csmuggler、curl --http2、nghttpH2 降级与不同步攻击
时序攻击Turbo Intruder微秒级精度的请求时序控制
原始请求Python sockets、netcat构造格式错误的 HTTP 请求
缓存分析curl、自定义脚本验证缓存行为
流量抓取Wireshark、tcpdump分析响应边界

参考资料

  • references/tools.md - 工具函数签名和参数
  • references/workflows.md - 攻击模式定义和测试向量

评论

支持 Markdown