recon-ng 不能直接挖掘 PHP 漏洞,它仅用于信息收集,如识别使用 PHP 的域名、子域、服务及公开源码,需配合漏洞利用工具人工验证与深入测试。

recon-ng 能不能直接挖 PHP 漏洞
不能。recon-ng 是信息收集框架,不是漏洞利用工具。它不扫描 PHP 代码缺陷(比如 eval() 未过滤、file_get_contents() SSRF、反序列化入口),也不发 payload 测试 RCE 或 SQLi。它的作用是帮你快速定位「哪些域名用了 PHP」「哪些子域在跑 PHP 服务」「哪些 GitHub 仓库公开了 PHP 源码」——这些是挖洞的前置线索。
用 recon-ng 找 PHP 目标的关键模块
重点不是“找 PHP”,而是找「暴露面大、维护弱、易被关联分析」的 PHP 资产。以下模块最实用:
-
recon/domains-hosts/bing_domain_web:查域名下所有被 Bing 索引的 PHP 页面(如site:example.com ext:php),常命中后台、测试页、旧接口 -
recon/domains-hosts/brute_hosts+recon/hosts-hosts/resolve:爆破子域后解析,再用recon/hosts-ports/portscan扫 80/443/8080,确认是否运行 Apache/Nginx + PHP-FPM -
recon/repositories-repositories/github_repos:搜组织名或关键词(如php,laravel,wp-content),返回开源仓库,重点看.git泄露、config.php提交记录、backup目录 -
recon/hosts-hosts/ssltools:提取证书中的备用域名(SAN),常发现隐藏的 PHP 管理后台子域(如admin.example.com)
recon-ng 输出后必须人工验证的坑
自动结果里大量误报和过期数据,不验证就盲目打点等于白忙:
- HTTP 状态码不是 200 就别点——
403可能是权限控制,404可能是重定向规则,502可能 PHP-FPM 已崩,但源站还在 - GitHub 仓库返回的
config.php链接,要手动访问看是否真可读;很多只是路径猜测,实际被deny from all挡了 - 用
recon/hosts-http/headers检查响应头:X-Powered-By: PHP/7.4.33比Server: nginx更可信;若只有Server: cloudflare,说明真实后端被代理,需另找突破口 - 别依赖
recon/domains-contacts/whois_pocs找管理员邮箱——PHP 漏洞利用不靠社工,靠的是phpinfo()页面、composer.json版本、error_reporting=1的报错泄露
下一步该用什么工具衔接
拿到 recon-ng 输出的 URL 列表后,立刻导出并喂给更垂直的工具:
立即学习“PHP免费学习笔记(深入)”;
- 批量测
phpinfo():用ffuf -w urls.txt -u FUZZ -t 50 -mc 200 -e "/phpinfo.php,/info.php,/test.php" - 扫敏感文件:用
gau | grep -E "\.(php|bak|swp|old)$" | httpx -status-code -title(gau抓历史 URL,httpx验证存活) - 检 GitHub 泄露:把 recon-ng 的 repo 链接丢进
gitdumper.sh或GitHacker,重点盯vendor/和storage/logs/ - 别忘了本地验证:recon-ng 发现的
example.com/api/v1/user?id=1,手工加id=1%20and%201=1看回包差异,比等自动化扫描快得多
真正卡住进度的,从来不是 recon-ng 跑得慢,而是拿到一堆 *index.php?m=home&c=user&a=login 这种 ThinkPHP 路由后,没去翻版本号、没试 ?s=index/think\app/invokefunction 这类已知 POP 链入口。











