PHP-FPM未授权访问漏洞1实验
一、实验目的
1. 了解PHP-FPM中间件漏洞并学会漏洞利用。
2. 知识点PHP-FPM未授权访问漏洞
二、实验原理
CGI全称是“通用网关接口”(CommonGatewayInterface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序一般运行在网络服务器上。CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。PHP-FPM是一个PHPFastCGI管理器,是只用于PHP的。PHP-FPM未授权访问漏洞是利用PHP-FPM默认监听9000端口,如果这个端口暴露在公网,则可以自己构造fastcgi协议,和fpm进行通信。
三、实验环境
软件工具Ÿ操作系统:Centos6.5:192.168.1.2kali:192.168.1.4Ÿ中间件:PHP-FPM

图1
四、实验目标
利用PHP-FPM未授权访问漏洞在服务器上执行系统命令。
五、实验步骤
1.php-fpm中件间环境搭建(已搭建好,无需操作)服务器环境信息:centos6。
2安装nginx:yuminstallnginx安装php-fpm:yuminstallphp-fpm搭建好之后,配置php-fpm,vim/etc/php-fpm.d/www.conf,修改以下两项:listen=0.0.0.0:9000(修改);listen.allowed_clients=127.0.0.1(前面添加注释分号)2.php-fpm中间件漏洞利用服务器环境信息:kali_caozuoji。python脚本漏洞利用此脚本是由phith0n编写,脚本链接如下https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75。此实验将脚本放在了/home/php-fpm上。对工具参数进行介绍,查看工具帮助信息。

图2
命令详解:-h显示帮助信息-cCODE指定需要执行的php代码-p指定FastCGI开放的端口
3host指定目标IP地址file指定一个存在的php文件使用php代码执行系统命令,将要执行的语句放在反撇号``中,示例如下。php-r‘echo`id`;exit;’注意id外边是反撇号,下面同样注意。

图3
接着使用工具在目标机器上执行系统命令,查看用户id。其中/var/www/html/index.php是事先探测好的已经存在的php文件。已经安装过php的系统环境中也有很多自带的php文件可以使用,可以在系统中查找find/-name“*.php”。

图4
使用工具查看系统文件。

图5