본문으로 건너뛰기
cccskills
무료GitHub에 공개

hunt-xxe

在授权渗透测试中挖掘 XML 外部实体注入(XXE)。当目标解析用户可控的 XML——SOAP、SAML、SVG、RSS/Atom、DOCX/XLSX、WSDL/XSL、含 XML 的反序列化——且可能启用了外部实体时使用。典型场景:外部实体读本地文件、SSRF 打内网、OOB 带外/报错型外带数据、XXE→反序列化链。

适用目标类型 Web / REST API / SOAP。触发场景包括用户说"测下 XXE""这个 XML/SVG 接口能不能读文件""XXE 打内网/带外""SAML 里能注实体吗"。输出:XXE 触发点 + 读到的文件/带外证据的 finding(含 killed 记录)。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(7)

  • SKILL.md3.8 KB
  • evidence/.gitkeep0 B
  • reference.md2.9 KB
  • tools/common.py2.8 KB
  • tools/hunt_xxe.py3.9 KB
  • tools/recon.sh2.5 KB
  • tools/validate.sh4.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

hunt-xxe · XML 外部实体注入猎杀

只解决 XXE 一类:找到解析用户 XML 的入口,判断外部实体是否被解析,用文件读取回显或OOB 带外证明。对无回显场景用外部 DTD 做 OOB/报错型外带。

XXE 常打到内网与本地文件,风险高。默认只读授权内的无害文件(如 /etc/hostname)+ 带外探测,不读敏感数据、不打未授权内网。payload、OOB 技巧、真实报告见 reference.md。

Scope(授权范围)

先确认授权。

落实:授权目标、可读文件边界、是否允许 OOB(需你的外部 HTTP/DTD 服务器与 OAST)、是否允许内网 SSRF。任一不清楚就停下问。

Goal

判定 XML 解析是否启用外部实体,达成本地文件读取 / SSRF / OOB 外带,给出可复现 PoC 与读到的内容/带外证据。

Workflow

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

1. scope-check

  • 动作:写 evidence/scope.txt(oast_domain / dtd_url / allow_internal)。
  • 命令:bash tools/recon.sh <target> --scope-only。
  • 终止条件:scope 明确,否则 KILL。

2. recon

  • 动作:找吃 XML 的入口——Content-Type: application/xml|text/xml|application/soap+xml、SVG/DOCX/XLSX 上传、SAML、RSS 导入、任何 body 是 XML 的 API。
  • 输出:recon/endpoints.json。
  • 命令:bash tools/recon.sh <target>。
  • 终止条件:至少 1 个 XML 入口。

3. hunt

  • 动作:对每个入口发分级 payload:①内部实体回显(判是否解析实体)②file:// 读授权文件 ③外部实体打 OAST(OOB 判可达)④无回显则挂外部 DTD 做报错/带外外带。
  • 输出:candidates.json。
  • 命令:python tools/hunt_xxe.py --input recon/endpoints.json --output candidates.json --oast <域名> [--read-file /etc/hostname]。
  • 终止条件:candidates.json 生成。

4. validate → report

  • 动作:过 7-Question Gate,通过的复现取证(保存读到的文件片段 / OAST 命中)。任一 NO → killed。
  • 命令:bash tools/validate.sh candidates.json。
  • 终止条件:每条 confirmed/killed,confirmed 有文件内容或带外证据。

7-Question Gate(任一 NO 则 KILL)

  1. 目标在授权 scope 内?
  2. 入口确实解析 XML(非当字符串存)?
  3. 有客观信号(实体被展开 / 读到文件 / OAST 命中 / 报错外带),非猜测?
  4. 达成越权读取或 SSRF(内部资源)?
  5. 可复现?
  6. 已留存文件内容/带外证据?
  7. 影响可陈述,且只读授权内无害文件?

Finding 输出格式

### <Title>
- Severity: Critical | High | Medium | Low | Info
- Asset: <XML 入口 + Content-Type>
- Reproduction: <完整 XML payload + 请求;OOB 用的 DTD>
- Impact: <文件读取 / SSRF / OOB 外带 / →反序列化链>
- Evidence: <evidence/ 读到的文件片段 / OAST 命中日志>
- Status: confirmed | killed(<第几问 NO>)

参考

分级 payload(内部实体 / file:// / OOB 外部 DTD / 报错型)、SVG/SAML/DOCX 载体、真实报告见 reference.md。

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

galact-byte/galact-Skills72026년 10월 13일 업데이트

在授权渗透测试中挖掘认证/授权绕过(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 记录)。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

galact-byte/galact-Skills72026년 10월 13일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

galact-byte/galact-Skills72026년 10월 13일 업데이트

在授权渗透测试中系统性挖掘命令注入与参数/标志注入(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 记录)。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

galact-byte/galact-Skills72026년 10월 13일 업데이트

hunt-csrf

무료

在授权渗透测试中挖掘跨站请求伪造(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 记录)。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

galact-byte/galact-Skills72026년 10월 13일 업데이트

在授权渗透测试中挖掘不安全反序列化(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 记录)。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

galact-byte/galact-Skills72026년 10월 13일 업데이트

galact-byte의 스킬 모두 보기

이 스킬의 문제 신고