用途:用于检测和利用本地文件包含(LFI)、远程文件包含(RFI)及任意文件读取漏洞,适用于目标存在文件包含参数(page/file/include/lang 等)、PHP 应用、日志文件可写等场景。
主要能力:按阶段组织测试流程。Phase 0 页面发现,用 ffuf/spray 扫描 .php/.html,失败时降级用 python3 requests 批量测试;Phase 1 发现文件包含点,用 Python 批量 fuzz 常见参数(file、page、path、include、doc、template、lang、module、view、load 等),并给出 URL 编码绕过与测试向量;Phase 2 路径穿越测试,逐步增加 ../ 层数;Phase 3 关键文件读取,覆盖 Linux、Windows、Web 应用与源码路径,并说明 PHP 文件包含陷阱(直接 include .php 只执行不显示源码,需用 php://filter/convert.base64-encode/resource=xxx 读取源码);Phase 4 给出 LFI 到 RCE 决策树,涉及 pearcmd.php、php://input/data:// wrapper、Session 文件包含、日志投毒、PHP Filter Chain RCE;Phase 5 RFI 测试。
使用方式:按阶段顺序执行,参数 fuzz 用 Python 批量测试或 ffuf 配合 Dic/web/ctf/param.txt 字典;日志投毒用 User-Agent 注入 PHP 代码,包含 /var/log/apache2/access.log 触发;PHP Filter Chain 用 php_filter_chain_generator.py 生成 chain。
限制与注意:include() 会执行 PHP,file_get_contents() 读原始文本;LFI 比 RFI 更常见,RFI 需 allow_url_include=On;HTTP 200 且 Content-Length: 0 可能表示 PHP 语法错误被吞;file_exists() 检查存在时 wrapper 不可用。深入参考见 references/lfi-to-rce.md 与 references/lfi2rce-techniques.md。