提交需求
*
*

*
*
*
立即提交
点击”立即提交”,表明我理解并同意 《美创科技隐私条款》

logo

    产品与服务
    解决方案
    技术支持
    合作发展
    关于美创

    申请试用
      安全实验室 | nginx配置错误导致的漏洞
      发布时间:2020-10-16 阅读次数: 366 次

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


      01

      目录穿越漏洞


      1)漏洞简介


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


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





      2)漏洞复现


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





      2. 重启nginx服务





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





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





      3)修复建议


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





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

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





      02

         CRLF注入漏洞


      1)漏洞简介


      CRLF是”回车 + 换行”( )的简称,,其十六进制编码分别为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。





      2. 重启nginx服务





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

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





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

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





      3)修复建议


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

      免费试用
      服务热线

      马上咨询

      400-811-3777

      回到顶部