• PHP-fpm 远程代码执行漏洞(CVE-2019-11043)复现


    简介

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

    漏洞概述

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

    影响版本

    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

    只适用于php7

    环境搭建

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

    exp环境:kaligo语言环境

    首先安装go环境

    wget  -c https://storage.googleapis.com/golang/go1.13.3.linux-amd64.tar.gz
    tar -C /usr/local -xzf go1.13.3.linux-amd64.tar.gz
    export PATH=$PATH:/usr/local/go/bin
    vim 编辑/etc/profile
    文件最后加上export PATH=$PATH:/usr/local/go/bin
    执行 source /etc/profile 命令 就安装成功了

     然后可以直接

    go get github.com/neex/phuip-fpizdam
    或者
    git clone https://github.com/neex/phuip-fpizdam
    go build

    启动靶机

    docker-compose.yml所在目录

    docker-compose up -d

    本地pull太慢,直接用云服务器搭了一个。来复现

    漏洞复现

    攻击:

    靶机:

     EXP执行成功后会在靶机的/tmp目录下写入了一个a文件

     

    注意点:

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

    如vulhub上所言,只有部分的子进程受到污染,所以我们需要多执行几次,就可以实行RCE。

    今天看到了一个py的exp:

    https://github.com/theMiddleBlue/CVE-2019-11043

  • 相关阅读:
    BZOJ3732: Network
    BZOJ2705: [SDOI2012]Longge的问题
    BZOJ3712: [PA2014]Fiolki
    BZOJ3709: [PA2014]Bohater
    BZOJ3668: [Noi2014]起床困难综合症
    CoderForces985F-Isomorphic Strings
    CodeForces985C-Liebig's Barrels
    Open-Pit Mining
    Multiplication Game
    象棋
  • 原文地址:https://www.cnblogs.com/BOHB-yunying/p/11748667.html
Copyright © 2020-2023  润新知