iwebsec靶场 解析漏洞通关笔记2-Nginx解析漏洞

CSDN 2024-10-16 08:33:02 阅读 71

目录

PHP CGI漏洞

1.产生原因

2.产生条件

第02关 Nginx解析漏洞

1.打开靶场

2.iwebsec靶场渗透配置

(1)确保nginx版本可以解析php

(2)确保cgi.fix_pathinfo配置正确

3.渗透分析

4.渗透实战


PHP CGI漏洞

1.产生原因

当php.ini中 cgi.fix_pathinfo = 1配置开启时,会产生解析漏洞

http://x.x.x.x:8000/parse/index.jpg/x.php时,如果x.php不存在,PHP会递归向前解析,如果index.jpg存在就会把index.jpg当做PHP解析,造成了解析漏洞.

2.产生条件

(1) cgi.fix_pathinfo = 1

(2)IIS 7.0/IIS 7.5/Nginx <0.8.03

第02关 Nginx解析漏洞

1.打开靶场

如下所示,打开靶场的解析漏洞,如下红框处的02 Nignx 解析漏洞关卡

http://iwebsec.com:81/

 网址为

iwebsec 靶场漏洞库iwebsec

icon-default.png?t=O83A

http://iwebsec.com:81/parse/02.php

打开后如下所示,根据提示,本关卡为Nginx的解析漏洞。

2.iwebsec靶场渗透配置

(1)确保nginx版本可以解析php

首先确保nginx版本号有此PHP-CGI漏洞,其次要确认nginx可以解析php文件

在iwebsec靶场的实践中,发现此靶场的8000启动nginx服务功能不全,不支持解析php。在nginx的根目录下,存在一个文件叫做php.php,内容是获取服务器php的敏感信息。

 但是在访问http://192.168.71.151:8000/php.php文件时,提示无法解析

在配置的过程中,查看nginx的php配置文件,如下所示

 不过在iwebsec靶场的容器中,查看9000端口判断是否启动

netstat -ano|grep 9000

却发现9000端口根本就没有启动。于是需要通过php-fpm启动9000端口,如下所示

service php-fpm restart

 启动后如下所示,确认9000端口已经启动

 接下来将php-fpm加入到开机自动启动

chkconfig php-fpm on

配置完毕后再次访问php.php,如下所示已经可以正常解析php文件

(2)确保cgi.fix_pathinfo配置正确

首先查找php.ini文件,

 然后修改配置确保cgi.fix_pathinfo开启,如果没有开启的话将注释删掉,保证cgi.fix_pathinfo=1,如下所示

3.渗透分析

iwebsec靶场的nginx根目录为/usr/share/nginx/html/

在/usr/share/nginx/html/parse/目录下存在一个index.jpg,浏览器访问如下所示

http://192.168.71.151:8000/parse/index.jpg

其实这个index.jpg是一个图片马,打开文件查看可以发现在文件的尾部有展示php信息的脚本,如下所示。

基于此,在访问http://192.168.71.151:8000/parse/index.jpg/x.php时,由于x.php不存在,PHP会递归向前解析,如果index.jpg存在就会把index.jpg当做PHP解析,造成了解析漏洞。

4.渗透实战

访问如下url地址

http://192.168.71.151:8000/parse/index.jpg/x.php

访问后如下所示

 虽然看起来是乱码,但是不断向下滑动,就会发现php的版本号

 如上所示,PHP CGI漏洞渗透成功



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。