前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >CVE-2019-11043PHP-FPM在Nginx特定配置下远程代码执行漏洞复现

CVE-2019-11043PHP-FPM在Nginx特定配置下远程代码执行漏洞复现

作者头像
墙角睡大觉
发布于 2019-10-30 06:41:42
发布于 2019-10-30 06:41:42
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

0x01:漏洞概述

9月26日,PHP官方发布漏洞通告,提到Nginx与php-fpm服务器上存在的一处高危漏洞,由于Nginx的fastcgi_split_path_info模块在处理带 %0a 的请求时,对换行符 \n 处置不当使得将PATH_INFO值置为空,从而导致可以通过FCGI_PUTENV与PHP_VALUE相结合,修改当前的php-fpm进程中的php配置。在特殊构造的配置生效的情况下可以触发任意代码执行。目前开源社区已有漏洞Poc公开。

漏洞信息

漏洞名称 PHP-FPM在Nginx特定配置下远程代码执行

CVE编号CVE-2019-11043

CNVD编号 -

影响版本 参考影响范围

威胁等级 高危

公开时间 2019年9月26日

影响范围

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ [^/]\.php(/|$) {
   fastcgi_split_path_info ^(.+?\.php)(/.*)$;
   fastcgi_param PATH_INFO      $fastcgi_path_info;
   fastcgi_pass   php:9000;
  }
}

0x02,环境准备

环境下载:

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

启动环境

mkdir Andrew

cd Andrew

docker-compose up –d

docker ps

进入nginx中,创建文件

Docker exec –it f2e659d78e37 /bin/bash

访问地址http://192.168.157.128:8080/index.php

0x03,漏洞复现

下载 phuip-fpizdam,编译

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

kali安装go教程:https://studygolang.com/articles/11279

漏洞攻击(这里我用的编译好的)

在浏览器中访问:http://192.168.157.128:8080/index.php?a=id

也可进行无害的漏洞检测,命令如下:

phuip-fpizdam http://192.168.157.128:8080/index.php--skip-attack

0x04,漏洞分析

PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。

nginx与php-fpm结合的处理流程

打开php-fpm.conf文件,我们看到如下配置:

即:php-fpm模块监听127.0.0.1:9000端口,等待请求到来去处理。

处理过程:

漏洞触发点

因为“fpm_main.c”文件的第1150行代码中由于\n(%0a)的传入导致nginx传递给php-fpm的PATH_INFO为空。

https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_main.c#L1150

进而导致可以通过FCGI_PUTENV与PHP_VALUE相结合,修改当前的php-fpm进程中的php配置。在特殊构造的配置生效的情况下可以触发任意代码执行。

此漏洞利用的先决条件:

1. php需要开启FPM模块,该模块在php虽然在PHP5.3.3之后已经加入php核心代码但是的PHP的发行版默认不安装php-fpm模块,所有默认的用户不受影响;要想php支持php-fpm,只需要在编译php源码的时候带上--enable-fpm;

2. 需要修改/nginx/conf/nginx.conf配置;

0x05,修复意见

  • 修改nginx配置文件中fastcgi_split_path_info的正则表达式,不允许.php之后传入不可显字符。
  • 暂停使用nginx+php-fpm 服务
  • 根据自己实际生产环境的业务需求,将以下配置删除

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

fastcgi_param PATH_INFO $fastcgi_path_info;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 安全漏洞环境学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
严重:PHP远程代码执行漏洞复现
9 月 26 日,PHP 官方发布漏洞通告,其中指出:使用 Nginx + php-fpm 的服务器,在部分配置下,存在远程代码执行漏洞。并且该配置已被广泛使用,危害较大。
Timeline Sec
2019/12/15
7960
严重:PHP远程代码执行漏洞复现
9 月 26 日,PHP 官方发布漏洞通告,其中指出:使用 Nginx + php-fpm 的服务器,在部分配置下,存在远程代码执行漏洞。并且该配置已被广泛使用,危害较大。
Power7089
2019/11/07
1.1K0
PHP-fpm 远程代码执行漏洞(CVE-2019-11043)分析
国外安全研究员 Andrew Danau在解决一道 CTF 题目时发现,向目标服务器 URL 发送 %0a 符号时,服务返回异常,疑似存在漏洞。
知道创宇云安全
2019/10/28
1.1K0
PHP-fpm 远程代码执行漏洞(CVE-2019-11043)分析
PHP远程代码执行漏洞复现(CVE-2019-11043)【反弹shell成功】
CVE-2019-11043 是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码。
Ms08067安全实验室
2019/10/31
11.1K0
PHP远程代码执行漏洞复现(CVE-2019-11043)【反弹shell成功】
PHP远程代码执行漏洞复现(CVE-2019-11043)
CVE-2019-11043是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码。
用户8478399
2022/09/22
8310
漏洞预警:CVE-2019-11043/PHP-FPM(RCE)
2019年9月26日,PHP官方发布漏洞通告称nginx + php-fpm服务器在部分错误配置下存在远程代码执行漏洞。2019年10月22日,外籍白帽子Andrew Danau在9月份Real World CTF比赛中意外发现的POC被公开,当向目标服务器发送%0a符号时,服务器返回异常,大概率存在漏洞。
Khan安全团队
2020/03/08
1.1K0
漏洞预警:CVE-2019-11043/PHP-FPM(RCE)
php-fpm在nginx特定环境下的任意代码执行漏洞(CVE-2019-11043)
在长亭科技举办的 Real World CTF 中,国外安全研究员 Andrew Danau 在解决一道 CTF 题目时发现,向目标服务器 URL 发送%0a符号时,服务返回异常,疑似存在漏洞。
天钧
2019/11/11
8551
php-fpm在nginx特定环境下的任意代码执行漏洞(CVE-2019-11043)
CVE-2019-11043: PHP 7 RCE漏洞分析
研究人员在PHP 7中找出有个远程代码执行(RCE)漏洞,该漏洞CVE编号为CVE-2019-11043。攻击者利用该漏洞只需要访问通过精心伪造的URL就可以在服务器上运行命令。
猿哥
2019/10/29
2K0
[漏洞预警]PHP-FPM在Nginx的特定环境下的任意代码执行漏洞
2019年10月22日在国外上某技术大牛公开了在PHP-FPM中新修补的RCE。
洛米唯熊
2019/10/25
1.2K0
[漏洞预警]PHP-FPM在Nginx的特定环境下的任意代码执行漏洞
php-fpm Remote Code Execution 分析(CVE-2019-11043)
国外安全研究员 Andrew Danau发现向服务器请求的URL中包含%0a 符号时,服务返回异常,疑似存在漏洞。
ChaMd5安全团队
2019/11/01
7700
【安全预警】PHP远程代码执行漏洞风险预警(CVE-2019-11043)
近日,腾讯云安全中心监测到PHP 官方披露了Nginx + php-fpm 部分配置下存在的远程代码执行高危漏洞,攻击者可利用漏洞对目标网站进行远程代码执行攻击。 为避免您的业务受影响,腾讯云安全中心建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。同时建议云上租户免费开通「安全运营中心」-安全情报,及时获取最新漏洞情报、修复方案及数据泄露情况,感知云上资产风险态势。 【风险等级】 高风险 【漏洞风险】 远程代码执行攻击 【漏洞详情】 9 月 26 日,PHP 官方发布漏
云鼎实验室
2019/10/24
2.5K0
【安全预警】PHP远程代码执行漏洞风险预警(CVE-2019-11043)
PHP-FPM RCE (CVE-2019-11043)
安全研究员 Andrew Danau 在解决一道 CTF 题目时发现,向目标服务器 URL 发送 %0a 符号时,服务返回异常,疑似存在漏洞。当 Nginx 将包含 PATH_INFO 为空的参数通过 FastCGI 传递给 PHP-FPM 时,PHP-FPM 接收处理的过程中存在逻辑问题。通过精心构造恶意请求可以对 PHP-FPM 进行内存污染,进一步可以复写内存并修改 PHP-FPM 配置,实现远程代码执行。
wywwzjj
2023/05/09
1K0
PHP-FPM RCE (CVE-2019-11043)
FastCGI漏洞复现
FastCGI是一个通信协议,可以用来进行数据交换,也即中间件和某个后端语言进行数据交换的协议。
字节脉搏实验室
2020/08/28
2.3K0
FastCGI漏洞复现
Linux 下 Nginx + PHP 环境的配置
本来想简单地写一写,结果发现越写越长,折腾了将近一个月,整出这篇 10000 多字的超长笔记。。。
zgq354
2019/11/24
3.6K1
为所有PHP-FPM容器构建单独的Nginx Docker镜像
最近,原文作者一直在使用Docker容器来开发PHP微服务套件。一个问题是PHP应用已经搭建,可以和PHP-FPM和Nginx(取代了简单的Apche/PHP环境)一起工作,因此每个PHP微服务需要两个容器(以及两个Docker镜像):一个PHP-FPM容器和一个NGinx容器。  这个应用运行了6个以上的服务,如果做个乘法,在开发和生产之间会有约30个容器。作者决定构建一个单独的NGinx Docker镜像,它可以使用PHP-FPM的主机名作为环境变量并运行单独的配置文件,而没有为每个容器构建单独的NGinx镜像。
星哥玩云
2022/07/14
5820
为所有PHP-FPM容器构建单独的Nginx Docker镜像
php5-fpm一直无法监听9000端口 | Nginx配置TP5
先来看看nginx的配置内容 server { listen 80; server_name tp5.samego.com; # access_log /app/logs/nginx/mydomain_access.log; # error_log /app/logs/nginx/mydomain_error.log; set $root /home/alic/workspace/PHP/ThinkPHP/BasicThinkPHP5/public;
AlicFeng
2018/06/08
9460
Windows 下 Nginx + PHP5 的安装与配置
本文转载至:www.phpvim.net/web/php/installing-nginx-with-php5-on-windows.html
meteoric
2018/11/14
1.6K0
phpStudy默认配置致Nginx解析漏洞复现
phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。
Timeline Sec
2020/09/15
1.9K0
phpStudy默认配置致Nginx解析漏洞复现
突发事件!PHP 7 的 PHP-FPM 存在远程代码执行漏洞
据外媒 ZDNet 的报道 ,PHP 7.x 中最近修复的一个远程代码执行漏洞正被恶意利用,并会导致攻击者控制服务器。编号为 CVE-2019-11043 的漏洞允许攻击者通过向目标服务器发送特制的 URL,即可在存在漏洞的服务器上执行命令。漏洞利用的 PoC 代码也已 在 GitHub 上发布 。
猿哥
2019/10/29
3.7K0
第一课:服务器环境部署(Nginx+PHP-FPM)
对于时间充裕,不急着使用的,首选内地的服务器,虽然备案可能大约要15-20天左右,但是鉴于目前环境,内地的服务器还是有优势(类似后期部署应用,无需备案的服务器国内都解析不了),而且据说在推广方面备案的服务器收录的更好
我不是程序员110
2022/09/25
6.2K1
第一课:服务器环境部署(Nginx+PHP-FPM)
推荐阅读
相关推荐
严重:PHP远程代码执行漏洞复现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文