php-xxe-audit
PHPのWebソースコードを分析し、XML解析の脆弱性を特定して、悪用可能性の評価や修正案を提示するSkill。
📜 元の英語説明(参考)
PHP Web 源码 XXE 审计工具。识别 XML 解析点与实体处理配置,追踪 XML 输入来源与回显,输出可利用性分级、PoC 与修复建议(禁止省略)。
🇯🇵 日本人クリエイター向け解説
PHPのWebソースコードを分析し、XML解析の脆弱性を特定して、悪用可能性の評価や修正案を提示するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
PHP XXE 監査(php-xxe-audit)
PHP プロジェクトのソースコードを分析し、XXE(XML External Entity)リスクを特定します。XML 解析ポイントが外部エンティティ/DOCTYPE を許可し、XML 入力が制御可能で、かつエコーバックまたは OOB チャネルが存在する場合、ファイル読み取り/SSRF/DoS につながる可能性があります。
分類と番号付け
- 詳細については、
shared/SEVERITY_RATING.mdを参照してください。 - 脆弱性番号:
{C/H/M/L}-XXE-{連番}
XXE Sink(必須)
XML 解析に関連するものを特定します。
DOMDocument->loadXML/loadHTMLsimplexml_load_string/simplexml_load_fileXMLReader->open/xmlDOMDocument->load(内容がユーザー制御可能な文字列/ストリームからの場合) 危険なパターン:- 外部エンティティが無効化されていない/ネットワークアクセスが制限されていない
- 解析パラメータが DOCTYPE を許可している
防御チェック(必須)
パーサーの防御に関する証拠を必ず出力してください。
- libxml セキュリティパラメータ:
LIBXML_NONET、LIBXML_NOENT(注意:NOENT はリスクを増大させる可能性があります)、LIBXML_DTDLOADなどの使用状況 libxml_disable_entity_loader(true)の使用有無(PHP のバージョンによってポリシーが異なるため、証拠が必要です)- 解析時に安全なオプションを渡し、ネットワークアクセスを無効にしているか
入力元とエコーバック(必須)
それぞれを必ず出力してください。
- XML 入力元:
$_POST/php://input/アップロードファイルストリームなど - エコーバックパス:解析結果がレスポンスに書き戻されているか(
echo/テンプレート出力)、または Blind(OOB)のみか。
tracer トリガー条件(必須)
- XML が多層にわたって渡され/解析された後、フィールドが再度出力される
- エコーバック位置が不明確、またはユーティリティクラス内にある
証拠の引用(必須:php-route-tracer から)
各 XXE 疑いのある脆弱性について、trace 出力中の ## 9) Sink Evidence Type Checklist の XXE 行に対応する証拠の要点を項目ごとに引用する必要があります(ステータスは「検証待ち」でも構いませんが、証拠の引用は必須です)。
EVID_XXE_PARSER_CALL:XML パーサー呼び出し点の位置に関する証拠(DOMDocument->loadXML/simplexml_load_string/XMLReader->open など)EVID_XXE_INPUT_SOURCE:入力ストリームのソースに関する証拠($_POST/php://input/アップロード読み取り/パラメータが解析に入る対応する証拠)EVID_XXE_ENTITY_DOCTYPE_SAFETY_AND_ECHO:外部エンティティ/DOCTYPE 無効化に関するセキュリティオプションの証拠(LIBXML_* または無効化ポリシー)、および解析結果のエコーバック位置に関する証拠
tracer 証拠の欠落処理(必須)
- 上記 1~3 のいずれかの重要な証拠の要点を特定できない場合:その脆弱性のステータスは
⚠️検証待ちとマークするしかなく、直接✅悪用可能と確認済みとすることはできません。
レポート出力
以下に出力されます。
{output_path}/vuln_audit/xxe_{timestamp}.md 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
PHP XXE 审计(php-xxe-audit)
分析 PHP 项目源码,识别 XXE(XML External Entity)风险:当 XML 解析点允许外部实体/DOCTYPE,且 XML 输入可控、并存在回显或 OOB 通道时,可能导致文件读取/SSRF/DoS。
分级与编号
- 详见:
shared/SEVERITY_RATING.md - 漏洞编号:
{C/H/M/L}-XXE-{序号}
XXE Sink(必做)
识别 XML 解析相关:
DOMDocument->loadXML/loadHTMLsimplexml_load_string/simplexml_load_fileXMLReader->open/xmlDOMDocument->load(若内容来自用户可控字符串/流) 危险模式:- 未禁用外部实体/未限制网络访问
- 解析参数允许 DOCTYPE
防护检查(必做)
必须输出解析器防护证据:
- libxml 安全参数:
LIBXML_NONET、LIBXML_NOENT(注意:NOENT 可能放大风险)、LIBXML_DTDLOAD等使用情况 - 是否使用:
libxml_disable_entity_loader(true)(不同 PHP 版本策略不同,仍需给证据) - 解析时是否传入安全选项并禁用网络访问
输入来源与回显(必做)
必须分别输出:
- XML 输入来源:
$_POST/php://input/上传文件流等 - 回显路径:是否把解析结果写回响应(
echo/模板输出)或仅 Blind(OOB)。
tracer 触发条件(必做)
- XML 经过多层传递/解析后字段再输出
- 回显位置不清晰或在工具类中
证据引用(强制:来自 php-route-tracer)
每条 XXE 疑似漏洞必须逐项引用 trace 输出中 ## 9) Sink Evidence Type Checklist 的 XXE 行对应证据要点(允许状态为待验证,但证据引用必须存在):
EVID_XXE_PARSER_CALL:XML 解析器调用点位置证据(DOMDocument->loadXML/simplexml_load_string/XMLReader->open 等)EVID_XXE_INPUT_SOURCE:输入流来源证据($_POST/php://input/上传读取/参数进入解析的对应证据)EVID_XXE_ENTITY_DOCTYPE_SAFETY_AND_ECHO:外部实体/DOCTYPE 禁用相关安全选项证据(LIBXML_* 或禁用策略)以及解析结果回显位置证据
tracer 证据缺失处理(强制)
- 若无法定位上述 1~3 任一关键证据要点:该漏洞状态只能标记为
⚠️待验证,不得直接给出✅已确认可利用。
报告输出
输出到:
{output_path}/vuln_audit/xxe_{timestamp}.md