安全实验室 | nginx配置错误导致的漏洞

admin 2023年6月1日10:23:56评论126 views字数 1320阅读4分24秒阅读模式

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,经常被做为反向代理。而nginx的配置文件nginx.conf的一些错误配置可能会引发一些安全漏洞。


01
目录穿越漏洞


1)漏洞简介


目录穿越漏洞常见于Nginx做反向代理的情况,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。假设静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名。


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


安全实验室 | nginx配置错误导致的漏洞


2)漏洞复现


1. 修改/usr/local/nginx/conf/nginx.conf,在如下图位置添加如下内容:


安全实验室 | nginx配置错误导致的漏洞


2. 重启nginx服务


安全实验室 | nginx配置错误导致的漏洞


3. 浏览器访问http://192.168.215.149/files/


安全实验室 | nginx配置错误导致的漏洞

4. 在files后面加上..可成功穿越到上级目录,即访问http://192.168.215.149/files../


安全实验室 | nginx配置错误导致的漏洞


3)修复建议


1. 修改/usr/local/nginx/conf/nginx.conf,使用/闭合/files,形成/files/。


安全实验室 | nginx配置错误导致的漏洞


2. 重启nginx服务,再次访问http://192.168.215.

149/files../,提示404,说明该漏洞不存在。


安全实验室 | nginx配置错误导致的漏洞


02
    CRLF注入漏洞


1)漏洞简介


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


2)漏洞复现


1. 在nginx的配置文件nginx.conf的如下位置中,加上一句return 302 https://$host$uri。这句话的意思是,在用nginx访问一个链接时,会用https协议访问,并且返回一个302跳转给用户。其中的$uri是我们可以控制的,通过注入一个CRLF和两个CRLF来选择注入到http header还是http body。


安全实验室 | nginx配置错误导致的漏洞


2. 重启nginx服务


安全实验室 | nginx配置错误导致的漏洞


3. 先注入一个CRLF,访问http://102.168.215.

149:8080/%0a%0dSet-Cookie:%20a=1,抓包。如下图,可以看到成功将会话Cookie注入到http header中了。


安全实验室 | nginx配置错误导致的漏洞


4. 注入两个两个CRLF,访问http://192.

168.215.149:8080/%0d%0a%0d%0a<script>alter(1)</script>。如下图,可以看到成功将内容注入到http body中了。


安全实验室 | nginx配置错误导致的漏洞


3)修复建议


过滤r 、n之类的换行符,避免输入的数据污染到其他HTTP头。



安全实验室 | nginx配置错误导致的漏洞


安全实验室 | nginx配置错误导致的漏洞

原文始发于微信公众号(第59号):安全实验室 | nginx配置错误导致的漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月1日10:23:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全实验室 | nginx配置错误导致的漏洞http://cn-sec.com/archives/885872.html

发表评论

匿名网友 填写信息