欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Nginx中间件漏洞复现

时间:2023-06-28

参考:https://www.cnblogs.com/labster/p/14717805.html
Nginx中间件
1.介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like
协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中
表现较好。

1.文件解析漏洞

1.漏洞描述
该漏洞是由于Nginx中php配置不当而造成的,与Nginx版本无关,但在高版本的php中,由于
security.limit_extensions的引入,使得该漏洞难以被成功利用。
在已经上传了恶意1.jpg文件后,访问/1.jpg/xxx.php,(路径修复cgi.fix_pathinfo=1后)使得Nginx将
其解析为php文件传给php-cgi程序(传给路径位于SERVER[“script_FILENAME”],修复去除路径位于
SERVER[“PATH_INFO”]),但cgi程序将其解析为1.jpg并执行。

2.漏洞原理分析
Nginx的处理程序和FastCGI处理程序不同导致
Nginx拿到URI为/1.jpg/xxx.php后,识别处后缀是.php,认为是php文件,转交给PHP FastCGI处理程
序去处理。PHP FastCGI处理程序识别该URI: /1.jpg/xxx.php不存在,按照PHP FastCGI处理程序自己
的规则,删去最后的/xxx.php,又看/1.jpg存在,就将/1.jpg当成要执行的文件,就成功解析。
Nginx传送给PHP FastCGI处理程序的路径可以在phpinfo中查看【传送路径查看】
cgi.fix_pathinfo为php中的一个选项,默认开启为1,作用为修理路径,也就是对路径URI的处理规则

当php遇到文件路劲为/1.jpg/xxx.php/ss.001时,该文件不存在,会删除最后的/ss.001,再判断/1.jpg/xxx.php是否存在,若存在则将/1.jpg/xxx.php当作/1.jpg/xxx.php/ss.001文件,若不存在,则继续删除最后一个路径。删除的多余路径会存在PATH_INFO中,在这里为ss.001

3.漏洞复现
使用phpstudy nginx php5.2.7

http://localhost/123.jpg/123.php

4.修复方案
1、 将php.ini文件中的cgi.fix_pathinfo的值设置为0,这样php再解析1.php/1.jpg这样的目录时,只要1.jpg
不存在就会显示404页面
2、 php-fpm.conf中的security.limit_extensions后面的值设置为.php

2目录遍历漏洞

1.漏洞描述
Nginx的目录遍历与apache一样,属于配置方面的问题,错误的配置可导致目录遍历与源码泄露。

2.漏洞原理
修改nginx.conf,在如下图位置添加autoindex on

autoindex on;

autoindex on 开启目录浏览 autoindex off关闭目录浏览 默认是关闭状态

3.漏洞复现

1)在网站根目录下创建一个文件夹test

2)访问该文件夹

4.漏洞修复
1.设置 autoindex off 关闭目录浏览
2.删除 autoindex on

3空字节代码执行漏洞

1.漏洞描述
在使用PHP-FastCGI执行php的时候,URL里面在遇到%00空字节时与FastCGI处理不一致,导致可在非php文件中嵌入php代码,通过访问url+%00.php来执行其中的php代码。如:
http://local/robots.txt.php会把robots.txt文件当作php来执行。
影响版本:

nginx 0.5.*nginx 0.6.*nginx 0.7 <= 0.7.65nginx 0.8 <= 0.8.37

一般需要配合文件上传进行

2.漏洞复现
开启nginx

在网站目录下添加1.jpg文件

访问该文件

4)抓包,添加%00
这里由于该图非正常,在抓包时最后面添加…,可以让burpsuite抓到

将请求修改为:

/1.jpg..php


发包即可

3.漏洞修复
1.在nginx虚拟机配置或者fcgi.conf配置加如下代码:

if ($request_filename ~* (.*).php) { set $php_url $1; }if (!-e $php_url.php) { return 403; }

2.升级 nginx

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。