首页 >> 网络安全 >>渗透测试 >> Web中间件漏洞总结之Nginx漏洞
详细内容

Web中间件漏洞总结之Nginx漏洞

解析漏洞

漏洞简介:

对于任意文件名,在后面加上/任意文件名.php后该文件就会以php格式进行解析,是用户配置不当造成的

漏洞复现:

在网站根目录新建test.jpg,里面写入phpinfo(),打开试一下

1.png

试一试Nginx的解析漏洞,在后面加上/x.php

2.png

对于低版本的php能够直接解析成功,高版本php因为引入了security.limit_extensions,限制了可执行文件的后缀,默认只允许执行.php文件,这里来看看两个与Nginx解析漏洞相关的核心配置

核心配置:cgi.fix_pathinfo

该选项位于配置文件php.ini中,默认值为1,表示开启。当php遇到文件路径/aaa.xxx/bbb.yyy/ccc.zzz时,若/aaa.xxx/bbb.yyy/ccc.zzz不存在,则会去掉最后的/ccc.zzz,然后判断/aaa.xxx/bbb.yyy是否存在,若存在,则把/aaa.xxx/bbb.yyy当做文件/aaa.xxx/bbb.yyy/ccc.zzz解析,若/aaa.xxx/bbb.yyy仍不存在,则继续去掉/bbb.yyy,以此类推。若是关闭该选项,访问 http://192.168.43.13/test/test.jpg/x.php 只会返回找不到文件。但关闭该选项很可能会导致一些其他错误,所以一般是开启的

核心配置:security.limit_extensions

在我的配置文件中,它位于/etc/php-fpm.d/www.conf中

这个选项开始是被注释了的也就是默认只允许执行php文件,将;去掉,可以在后面添加其它后缀,比如添加.jpg这样.jpg文件也能够以php来执行,修改了后需要service php-fpm restart重启php

3.png

执行效果

4.png

或者将.php删除,也就是security.limit_extensions后面留空,这样就是允许任意格式的文件执行

5.png

执行效果

6.png

修复方法:

1.将php.ini文件中的cgi.fix_pathinfo的值设为0

2.将security.limit_ectensions后面的值设为.php


目录遍历

漏洞简介:
和Apache目录遍历一样属于配置错误,可导致源码泄露与目录遍历
漏洞复现:
访问test目录

7.png

核心配置:

修改/usr/local/nginx/conf/nginx.conf,在如下图位置添加autoindex on,默认是没有这一行的

8.png

然后访问test目录,成功实现目录遍历

9.png

修复方法:

将autoindex on改为autoindex off


目录穿越

漏洞简介:

Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞

配置不当:

在如下配置中设置目录别名时/test配置为/home/的别名,那么当我们访问/test../时,nginx实际处理的路径时/home/../,从而实现了穿越目录

10.png

漏洞复现:

11.png

修复方法:

将Nginx配置文件中的/test改为/test/(闭合)


CRLF注入

漏洞简介:

我对这个漏洞也不是特别了解,所以我还是看看基本定义和利用吧

CRLF是“回车+换行”(\r\n)的简称,其十六进制编码分别为0x0d和0x0a。在HTTP协议中,HTTP header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP内容并显示出来。所以,一旦我们能够控制HTTP消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码。CRLF漏洞常出现在Location与Set-cookie消息头中。

漏洞复现:

(1)通过CRLF注入构造会话固定漏洞

固定会话漏洞:

如果注册前有一个session id为某个值,注册后发现自己的session id还是为这个值就极有可能存在固定会话漏洞

下面举一个固定会话漏洞利用的例子:

假如有一个网站,你注册了一个账号,注册之前抓包PHPSESSID = ghtwf01,注册成功后发现PHPSESSID依然为ghtwf01,此时是普通用户权限

这个时候就可以社工管理员点击某个链接,比如http://xxx/?PHPSESSID=ghtwf01,这个时候你的账户权限就会变为管理员权限(类似于CSRF)

CRLF注入怎么构造会话固定漏洞呢?

构造链接:http://10.23.88.137%0aSet-Cookie:sessionid=ghtwf01

12.png

给管理员点击即可

(2)通过CRLF注入消息头引发反射型XSS漏洞

13.png

修复方法:

只需过滤掉\r 、\n之类的换行符就可


参考链接

https://blog.csdn.net/qq_32434307/article/details/79480036

https://article.itxueyuan.com/1DoQ31

https://blog.csdn.net/liuhuaijin/article/details/77449579

https://www.cnblogs.com/0x4D75/p/9790281.html

原文:https://xz.aliyun.com/t/6801

技术支持: 建站ABC | 管理登录