漏洞描述

CVE-2019-11043 是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码。

向Nginx + PHP-FPM的服务器 URL发送 %0a 时,服务器返回异常。

该漏洞需要在Nginx.conf中进行特定配置才能触发。具体配置如下:

location ~ [^/]\.PHP(/|$) {
 ...
 fastcgi_split_path_info ^(.+?\.PHP)(/.*)$;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_pass   PHP:9000;
 ...
}
fastcgi_split_path_info
影响范围

在 Nginx + PHP-FPM 环境下,当启用了上述 Nginx 配置后,以下 PHP 版本受本次漏洞影响,另外,PHP 5.6版本也受此漏洞影响,但目前只能 Crash,不可以远程代码执行:

漏洞复现

使用 p 牛的 docker 环境进行复现:

准备工作:安装 docker、golang 环境

sudo apt-get install docker docker-composesudo apt install golang

搭建漏洞环境

git clone https://github.com/vulhub/vulhub.gitcd vulhub/PHP/CVE-2019-11043 && docker-compose up -d

安装漏洞利用工具

git clone https://github.com/neex/phuip-fpizdam.gitcd phuip-fpizdamgo get -v && go build

漏洞利用

提示:您应该注意,只有部分PHP-FPM子进程受到了污染,因此请尝试几次以执行该命令。

反弹 shell:

因为我用的是P牛的环境,里面没有 nc 命令。所以不能用 nc 的反弹 shell。

一个 nc:

p牛的环境有两个 docker 镜像,一个是Nginx,一个是 PHP:

 

进入 Nginx 的容器:

如图就装好了。

exit

Nginx docker 镜像里面尝试的:

 

试试在PHP镜像里面装nc。毕竟、

 

 

 

然后 nc 连接成功:

科学提速

这个环境我下了很久没下下来,我之前一直在国外,对一些换源、换镜像不熟悉。

进去之后获取:

 

然后配置 docker 文件:

 

然后 restart 一下 docker:

然后就可以了!

参考链接:

[1] 镜像中心-镜像加速器
[2] 官方镜像加速 操作手册

重启 docker 之后,速度仿佛换了个 docker,很爽。

基于 http 协议的:

需要凭据:

无需凭据:

export http_proxy="http://ip:端口号/"export https_proxy="http://ip:端口号/"
etc/profile

基于 socks5 协议:

proxychains

 

 

小编说

以上是编程之家为你收集整理的php 远程代码执行漏洞复现 cve-2019-11043全部内容。

如果觉得编程之家网站内容还不错,欢迎将编程之家推荐给好友。