Kali Linux 可独立完成 PHP 漏洞链挖掘,无需 BackBox;核心步骤包括路径枚举、源码泄露分析、phpggc 生成链、框架特有 RCE 利用,并需规避 WAF 与 PHP 版本限制。

用 Kali 测 PHP 站漏洞链,BackBox 不是必需工具
BackBox 是一个已停止维护的旧版渗透测试发行版(最后更新在 2016 年),它不提供对现代 PHP 漏洞链(如反序列化、Twig 模板注入、Laravel RCE、ThinkPHP 命令执行等)的有效支持。Kali Linux 已内置更活跃、更新及时的工具链,直接用 Kali 即可完成全流程,加装 BackBox 反而可能引入环境冲突或过时依赖。
PHP 漏洞链挖掘的核心步骤(Kali 原生操作)
实际打点中,PHP 漏洞链往往依赖多个组件串联(例如:可控反序列化点 + POP 链 + gadget 类),不能只靠自动扫描。关键动作如下:
- 先用
gobuster或ffuf枚举常见路径(/backup/、/phpinfo.php、/vendor/、/composer.json),确认框架和扩展版本 - 手动检查源码泄露(如
/.git/config、/index.php~、/index.php.bak),很多 PHP 链起点来自硬编码密钥或未过滤的unserialize()调用 - 对疑似反序列化入口(如
/?r=O%3A8%3A%22SomeClass%22%3A1%3A%7Bs%3A4%3A%22data%22%3Bs%3A5%3A%22hello%22%3B%7D)用phpggc快速生成链,配合curl -v手动验证回显或 DNSLog 触发 - 若目标用 Laravel,优先查
/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php是否可访问,再试Ignitiondebug 页面(/_ignition/execute-solution)的 RCE
别盲目扫,这些 PHP 特性会让扫描器失效
PHP 的动态特性导致多数自动化工具漏报严重,尤其以下情况:
-
__wakeup()被禁用(PHP 7.4+ 默认禁用)但__destruct()仍可用 → 扫描器常忽略非标准入口 - POP 链依赖第三方包(如
monolog、swiftmailer),需根据composer.lock精确匹配 gadget 版本 →phpggc --help查支持列表,别硬套通用 payload - WAF 拦截常见关键词(
system、exec、file_put_contents)→ 改用base64_decode+ 动态函数调用绕过,例如:assert(base64_decode("c3lzdGVtKCJjYXQgLy5zaC5iYXNoIik="))
Kali 中必须提前配置的 PHP 安全分析工具
仅装默认包远远不够,这几个要手动拉取并验证可用性:
立即学习“PHP免费学习笔记(深入)”;
-
phpggc:从 GitHub 克隆,运行./phpggc --generate monolog/rce1 'phpinfo()' | base64 -w0测试是否输出有效 payload -
tplmap:专打模板注入,支持 Twig、Smarty、Blade;执行前先确认目标返回了模板错误(如Twig_Error_Syntax),否则无效 -
webanalyze:识别 CMS 和框架,比whatweb更准,命令为webanalyze -host example.com -output json - 临时起个本地 PHP 服务验证 payload:
php -S 127.0.0.1:8000 -t ./test/,避免每次改代码都上传
真正卡住你的往往不是工具缺位,而是没看懂 unserialize() 的上下文约束、或把 phar:// 链当成万能入口——PHP 漏洞链必须贴着目标的具体代码逻辑走,离线 gadget 库只是辅助。











