Skip to content
cccskills
FreePublished on GitHub

hunt-request-smuggling

在授权渗透测试中系统性挖掘 HTTP 请求走私(HTTP Request Smuggling / desync)。

当目标前面有反向代理/CDN/负载均衡(前端)转发给后端应用,且怀疑前后端对 Content-Length 与 Transfer-Encoding、畸形头、chunked trailer 的解析不一致时使用——典型场景:想毒化后端 socket 劫持他人请求、批量窃取会话 Cookie/令牌、缓存投毒、绕过前端访问控制。

适用目标类型 Web / REST API(有分层代理)。触发场景包括用户说"测下有没有 HTTP 走私/desync""这个 CDN 后端解析一致吗""能不能毒 socket 偷别人 cookie""CL.TE / TE.CL 打一下"。输出:带 desync 时序证据与原始报文的 finding 报告(含 killed 记录)。

The English summary is being prepared. Showing the original description.

See how to install

Files included (7)

  • SKILL.md5.4 KB
  • evidence/.gitkeep0 B
  • reference.md5.6 KB
  • tools/common.py2.8 KB
  • tools/hunt_smuggling.py5.5 KB
  • tools/recon.sh2.6 KB
  • tools/validate.sh4.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

hunt-request-smuggling · HTTP 请求走私猎杀

只解决 HTTP 请求走私(前后端解析分歧导致的 desync) 一类。核心是找到"前端按一种方式切分请求边界、后端按另一种方式切分"的差异点,用时序探测先判活,再谨慎做 socket 毒化验证。

走私会影响其他用户的请求,破坏性和法律风险都高。默认只做自打自(self-smuggling)时序探测确认 desync,不在生产上毒化真实用户 socket,除非 scope 明确授权。关键探测走 tools/ 脚本(raw socket,curl 发不了畸形头)。绕过变体与真实报告见 reference.md。

Scope(授权范围)

先确认授权,再发探测。 走私探测本身会向后端注入"半个请求",可能污染连接。

开工前落实:

  • 授权目标与是否允许 socket 毒化验证(区别于只做时序判活)。
  • 测试窗口(低峰期),避免影响真实用户。
  • 允许的验证深度:仅 desync 时序确认 / 允许自请求走私 / 允许受控毒化。

任一不清楚就停下问。绝不在未授权目标或高峰期做毒化。

Goal

判定前端与后端是否对请求边界解析不一致(CL.TE / TE.CL / TE.TE / 畸形头 / trailer),给出可复现的 desync PoC 与影响(socket 毒化劫持请求、偷 Cookie/令牌、缓存投毒、绕前端 ACL),并留存原始报文与时序证据。

Workflow

scope-check → recon → hunt → validate → report。

1. scope-check

  • 输入:授权范围 + 是否允许毒化。
  • 动作:写入 evidence/scope.txt(含 allow_poison 标记与测试窗口)。
  • 命令:bash tools/recon.sh <target> --scope-only。
  • 终止条件:evidence/scope.txt 存在且授权明确,否则 KILL。

2. recon

  • 输入:in-scope 目标。
  • 动作:识别分层结构——是否有 CDN/反代(看 Via、X-Cache、Server、CF-* 头)、支持的 HTTP 版本、是否 keep-alive 复用连接。
  • 输出:recon/frontend.json(前端指纹、是否值得试走私)。
  • 命令:bash tools/recon.sh <target>。
  • 终止条件:确认存在前后端分层且 keep-alive;否则走私面弱,记录后结束。

3. hunt

  • 输入:目标 + recon/frontend.json。
  • 动作:按 reference.md 的 desync 家族逐个发时序差分探测:正常基线 vs CL.TE vs TE.CL vs 畸形分隔(空格/Tab/CR-only/无冒号 trailer)。以后端挂起超时 vs 快速返回的时序差判 desync。
  • 输出:candidates.json(每个变体:延迟、状态、疑似 desync 类型)。
  • 命令:python tools/hunt_smuggling.py --target <url> --output candidates.json。
  • 终止条件:candidates.json 生成。无时序差异则记 killed 结束。

4. validate → report

  • 输入:candidates.json。
  • 动作:对疑似 desync 变体过 7-Question Gate,通过的做受控复现(自请求走私取证;毒化仅在 allow_poison 时)。任一 NO → killed。
  • 输出:evidence/(原始 desync 报文 + 时序)+ report/candidates.md。
  • 命令:bash tools/validate.sh candidates.json。
  • 终止条件:每个变体有 confirmed/killed 结论,confirmed 项有原始报文与可复现时序。

7-Question Gate(任一 NO 则 KILL)

  1. 目标在授权 scope 内、且在允许的测试窗口?
  2. 目标确有前后端分层(代理/CDN + 后端)且keep-alive 复用?
  3. 观测到稳定的时序差分(后端挂起 vs 正常),而非网络抖动?
  4. 差异确由解析分歧引起(能指出是 CL.TE/TE.CL/哪种畸形)?
  5. desync 可复现(多次稳定,非偶发)?
  6. 已留存原始畸形报文 + 时序证据?
  7. 能陈述影响(毒 socket 劫持/偷令牌/缓存投毒/绕 ACL),且验证方式未伤害真实用户?

Finding 输出格式

### <Title>
- Severity: Critical | High | Medium | Low | Info
- Asset: <目标 + 前端指纹>
- Reproduction: <desync 变体 + 原始畸形报文 + 时序数据>
- Impact: <socket 毒化 / 令牌窃取 / 缓存投毒 / ACL 绕过>
- Evidence: <evidence/ 下原始报文 + 时序日志>
- Status: confirmed | killed(<第几问 NO + 原因>)

参考

desync 家族(CL.TE / TE.CL / 空格-Tab-CR 畸形 / 无冒号 trailer / CRLF 注入)、检测特征、真实报告见 reference.md——按 recon 出的前端类型定向查阅。深度验证建议配合 Burp Repeater(关自动更新CL) 或 smuggler.py,本 skill 脚本负责时序判活与证据留存。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when an agent must decide whether to proceed autonomously, ask for clarification, request approval, or select an appropriate verification scope for a coding or documentation task

The English summary is being prepared. Showing the original description.

galact-byte/galact-Skills7Updated Oct 13, 2026

在授权渗透测试中挖掘认证/授权绕过(authentication & authorization bypass)。当目标的登录、SSO/OAuth/SAML、2FA、会话、密码重置、邮箱验证等鉴权环节可能被逻辑缺陷或解析差异绕过时使用——典型场景:SAML 签名/entityId 绕过、OAuth `response_type`/`redirect_uri` 篡改窃取 token、邮箱规范化/预验证绕过、2FA 可预测/可跳过、会话类型混淆。适用目标类型 Web / REST API / SSO。触发场景包括用户说"测下认证绕过""这个 SAML/OAuth 有没有问题""能不能跳过 2FA""邮箱验证能绕吗"。输出:绕过路径 + 越权访问证据的 finding(含 killed 记录)。

The English summary is being prepared. Showing the original description.

galact-byte/galact-Skills7Updated Oct 13, 2026

在授权渗透测试中挖掘 Web 缓存投毒与缓存欺骗(web cache poisoning / cache deception)。当目标前有缓存层(CDN/反代/Varnish)且缓存键未覆盖某些影响响应的输入(unkeyed header/参数/解析差异)时使用——典型场景:X-Forwarded-Host 反射进响应被缓存、unkeyed 参数、缓存键规范化差异、静态扩展名欺骗缓存私有页。适用目标类型 Web / CDN。触发场景包括用户说"测下缓存投毒""X-Forwarded-Host 能不能毒缓存""缓存欺骗看一下""unkeyed 输入有没有"。输出:投毒/欺骗可行性 + 被缓存证据的 finding(含 killed 记录)。

The English summary is being prepared. Showing the original description.

galact-byte/galact-Skills7Updated Oct 13, 2026

在授权渗透测试中系统性挖掘命令注入与参数/标志注入(OS command injection、argument/flag injection、外部程序 delegate 注入)。当目标把用户输入拼进 shell 命令、或作为参数传给 git/tar/curl/ffmpeg/ImageMagick 等外部程序、或经模板/eval 执行时使用——典型场景:文件名/路径/URL/ref 参数最终进了命令行,想拿 RCE 或任意文件读写。适用目标类型 Web / REST API / CI 系统。触发场景包括用户说"测下命令注入/RCE""这个参数会不会进 shell""git/tar/ffmpeg 参数能注入吗""上传头像触发 ImageMagick 了"。输出:带原始请求/命令回显或带外证据的 finding 报告(含 killed 记录)。

The English summary is being prepared. Showing the original description.

galact-byte/galact-Skills7Updated Oct 13, 2026

在授权渗透测试中挖掘跨站请求伪造(CSRF)及其防护绕过。当目标存在状态变更操作(改邮箱/密码/角色/设置、转账、增删)而 CSRF 防护缺失或可绕过时使用——典型场景:无 token/token 不校验、SameSite=Lax 被 GET 或子域绕过、Content-Type text/plain 避开 preflight、cookie 注入伪造 token、Flash/307 重定向绕 CORS、Login CSRF。适用目标类型 Web / REST API。触发场景包括用户说"测下 CSRF""这个改密码有没有 CSRF 防护""SameSite 能绕吗""token 校验严不严"。输出:CSRF 可行性 + PoC 的 finding(含 killed 记录)。

The English summary is being prepared. Showing the original description.

galact-byte/galact-Skills7Updated Oct 13, 2026

在授权渗透测试中挖掘不安全反序列化(insecure deserialization)。当目标把用户可控数据交给 unserialize/Marshal/pickle/ObjectInputStream/BinaryFormatter/YAML.load 等还原成对象时使用——典型场景:cookie/token/viewstate/隐藏字段里出现序列化数据、导入文件触发对象还原、想借 gadget chain 拿 RCE。适用目标类型 Web / REST API(PHP/Ruby/Python/Java/.NET)。触发场景包括用户说"测下反序列化""这个 cookie 是不是序列化对象""能不能 gadget chain 打 RCE""phar/Marshal/pickle 打一下"。输出:识别出的序列化落点 + gadget 可用性判定 + 带外/回显证据的 finding(含 killed 记录)。

The English summary is being prepared. Showing the original description.

galact-byte/galact-Skills7Updated Oct 13, 2026

See all skills by galact-byte

Report a problem with this skill