该仓库包含一个用 Go 编写的专业概念验证(PoC)漏洞利用程序,旨在演示 Craft CMS 中的一条关键漏洞链。该利用程序借助一个日志投毒漏洞实现本地文件包含(LFI),最终通过反弹 Shell 达成远程代码执行(RCE)。
该利用程序遵循多阶段执行链:
该工具首先向目标发送一个未经验证的 GET 请求。通过操纵 a 参数并通过 Cookie 提供自定义的 CraftSessionId,攻击者可以强制应用程序将 PHP 载荷写入位于 /var/lib/php/sessions/sess_[sessionId] 的会话日志文件中。
为了与 generate-transform 端点交互,该工具会自动从管理界面提取所需的 X-CSRF-Token 和 CRAFT_CSRF_TOKEN Cookie,确保后续的 POST 请求能被服务器接受。
该工具通过传递一个特制的 JSON 载荷来利用 generate-transform 端点。借助行为注入滥用 \yii\rbac\PhpManager 类,该工具触发对先前被投毒的会话日志的本地文件包含(LFI)。一旦日志中的 PHP 代码被执行,该工具便会调用基于 Python 的反弹 Shell。
与传统的脚本不同,该工具使用 Go 例程(goroutine)实现了一个并发的 TCP 监听器。这使得工具能够自动在指定端口上捕获反弹 Shell 连接,提供从漏洞利用投递到 Shell 访问的无缝"一键"体验。
go run main.go
按照屏幕提示输入目标 URL、监听端口和你的 IP 地址。
本工具仅用于教育和授权测试目的。