0x00 漏洞描述
PHP官方发布漏洞通告称nginx + php-fpm服务器在部分错误配置下存在远程代码执行漏洞。外籍白帽子Andrew Danau在Real World CTF比赛中意外发现的POC被公开,当向目标服务器发送%0a符号时,服务器返回异常,大概率存在漏洞。
0x01 漏洞描述
当Nginx使用特定的fastcgi配置时,存在远程代码执行漏洞,但这个配置并非Nginx默认配置。当fastcgi_split_path_info字段被配置为 ^(.+?\.php)(/.*)$;时,可造成远程代码执行漏洞。
location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ... } }
0x02 漏洞复现
靶机:ubuntu/win7
安装环境:
wget https://raw.githubusercontent.com/vulhub/vulhub/master/php/CVE-2019-11043/default.conf
wget https://raw.githubusercontent.com/vulhub/vulhub/master/php/CVE-2019-11043/docker-compose.yml
wget https://raw.githubusercontent.com/vulhub/vulhub/master/php/CVE-2019-11043/www/index.php
POC:https://github.com/neex/phuip-fpizdam 改POC利用go build进行编译,我们使用编译好的exe文件进行验证。
访问http://192.168.1.102:8080/index.php?a=id
0x03 修复建议
删除如下配置
fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info。