1. 提交需求
    *
    *

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

    logo

      产品与服务
      解决方案
      技术支持
      合作发展
      关于黄金城

      申请试用
        黄金城官网实验室 | nginx配置错误导致的漏洞
        发布时间:2020-10-16 阅读次数: 431 次

        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

        回到顶部

        【网站地图】【sitemap】