CVE-2019-11043 PHP在Nginx配置下任意代码执行漏洞

本文详细介绍了CVE-2019-11043,这是一个影响PHP 7.0到7.3版本的严重漏洞,当Nginx与php-fpm配置不当,可能导致远程代码执行。漏洞由Andrew Danau在Real World CTF比赛中发现,通过特定请求可以触发。文章提供了漏洞复现的步骤,包括环境搭建、漏洞利用方法,并给出了修复建议和相关参考链接。
摘要由CSDN通过智能技术生成

漏洞背景

2019年10月23日,PHP 官方发布了在 nginx 配置不当的情况下php-fpm 可导致远程代码执行的漏洞更新。
此漏洞是由国外安全研究员 Andrew Danau 在9 月14日至18日举办的Real World CTF 中解决一道CTF题目时发现的,向目标服务器URL发送%0a符号时,服务返回异常,疑似存在漏洞。

漏洞影响版本

PHP 7.0 版本
PHP 7.1 版本
PHP 7.2 版本
PHP 7.3 版本

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

location ~ [^/]\.php(/|$) {

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

        fastcgi_param PATH_INFO       $fastcgi_path_info;

        fastcgi_pass   php:9000;

        ...

  }

}

在这里插入图片描述

漏洞成因

因为“fpm_main.c”文件的第1150行代码中由于\n(%0a)的传入导致nginx传递给php-fpm的PATH_INFO为空。
进而导致可以通过FCGI_PUTENV与PHP_VALUE相结合,修改当前的php-fpm进程中的php配置,在特殊构造的配置生效的情况下可以触发任意代码执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值