热榜
#安全

9bie/php2shell-bypass-aslr-exp

在不改目标配置、只用 HTTP 的前提下,对官方 Apache prefork + mod_php 实现远程 RCE。

1,400
412
Python
上线 3 天

解决什么问题

公开的 PHP 利用链大多默认目标被削弱过:display_errors=On、memory_limit 被调到极小、用了自定义 ini,或者需要挂调试器。真实环境跑的是 php.ini-production,错误关闭、128M 内存,研究者要证明这种官方配置也能被打穿,往往拿不出完整链路。这个项目在官方镜像、官方 ini、官方 150 worker prefork 配置下实现 RCE,攻击流量只有普通 HTTP,目标页面只有 <?php echo "OK\n"; ?>。

有什么不同

通常的 PHP 内存破坏研究要么自己 build 带符号的目标挂 gdb,要么依赖非默认配置来完成泄漏。这里的链路是:用不带 Content-Length 的 chunked multipart 绕过 post_max_size;在 END cleanup 的 php_url_encode 里制造 OOM,bailout 后留下悬空的 session 状态;借 Set-Cookie 做越界读,从堆里泄出 chunk 基址和 libphp 地址;再用一次 cheap-OOM 把 hash_serialize_verifier 指向堆上伪造的 zend_array,让 pDestructor 落到 zif_system。真正让它成立的是 worker pinning:先用 149 个只发了半个 body 的 POST 占住其他 child,确保跨请求的悬空指针落在同一个 child 上。README 对机制的交代很实,并且附了每次运行的证据日志,而不是只放一个演示视频。

适合谁

适合在授权范围内做 PHP/Apache 栈漏洞研究的安全研究员和渗透测试人员,也适合想弄清纯 HTTP 内存破坏链能走多远的防守方,尤其是做 WAF 和检测规则的人——流量只是 chunked multipart 和普通 GET/POST,很值得拿来研究。不适合想找通用扫描器的人:偏移是按 Debian 13 上 PHP 8.4.26 NTS mod_php 标定的,换构建或版本就要重新标定。也不适合在非自己掌控的系统上尝试,README 明确限定在授权环境。

上手成本

需要 Docker(或 sudo docker)起目标,Python 3 跑脚本,架构要对得上,项目声称支持 x86_64 和 aarch64,默认 --arch auto 自动识别。换 PHP 构建或版本会让偏移表失效,重新标定是实打实的工作量。没有声明 License,这对任何商业使用或再分发都是硬性阻碍。成熟度也薄:一个 README、一个脚本、若干证据日志,没有测试套件。安装方式看 README,基本是 clone 后先跑 ./pure/run_pure.sh,再跑 exploit 脚本。

点评

这是一个全新的仓库:创建 3 天、1399 stars、日均 +421,在新榜上冲到 #11,形态更像一次集中的漏洞披露带来的短期冲高,而不是成熟工具。技术内容异常具体,偏移和逐次日志都摆出来了,所以很快吸引了注意力。但没有 License、目标矩阵窄、也没有明显的维护计划,应当把它当作研究产物和检测工程参考,而不是基础设施。偏移 profile 和整条链都会随着 PHP 修补很快过时。

本文由 AI 根据项目 README 生成,更新于 2026年10月24日,以项目官方文档为准。