• 漏洞复现-insecure-configuration-nginx不安全的配置


     
     
     
     

    0x00 实验环境

    攻击机:Win 10

    靶场:docker拉的vulhub靶场

    0x01 影响版本

    一些配置错误的情况,与nginx版本无关。

    0x02 漏洞复现

    (1)CRLF注入(回车换行),反射型XSS没成功,看了下面这两篇文章也没成功,不知道是不是因为我姿势不对:

    https://www.leavesongs.com/PENETRATION/Sina-CRLF-Injection.html
    https://www.leavesongs.com/PENETRATION/bottle-crlf-cve-2016-9964.html

    (2)目录穿越漏洞

    这个漏洞现实中碰到的还挺少的,一般就会出现在一些CTF的web题或者杂项题里:

    (3)add_header被覆盖

    讲一下这个:

    HTTP协议的安全头部有如下几个:

    • Strict-Transport-Security
    • X-Frame-Options
    • X-Content-Type-Options
    • X-XSS-Protection

    互联网上的资源有各种类型,通常浏览器会根据响应头的Content-Type字段来分辨它们的类型。例如:”text/html”代表html文档,”image/png”是PNG图片,”text/css”是CSS样式文档。然而,有些资源的Content-Type是错的或者未定义,这时,某些浏览器会启用MIME-sniffing来猜测该资源的类型,解析内容并执行。

    从图中可以看出,这个Content-Type是没有设置的,但是输入的url也没有被成功解析,导致仅解析为了文本,网站通过 script 参考检索到的响应中接收到 "nosniff" 指令,则 Internet Explorer 不会加载“script”文件,除非 MIME 类型匹配以下值之一

    • "application/ecmascript"

    • "application/javascript"

    • "application/x-javascript"

    • "text/ecmascript"

    • "text/javascript"

    • "text/jscript"

    • "text/x-javascript"

    • "text/vbs"

    • "text/vbscript"

     

    但是在IE7下就会显示成一个HTML文件,因为IE7通过这个文档的数据(HTML代码)判定这是一个HTML文件。test1是做过防护的,test2是没有做过防护的,这里应该是我浏览器的问题导致xss弹不出来。详细可以查看文档:https://www.ruanyifeng.com/blog/2016/09/csp.html

    0x03 漏洞原理

    (1)CRLF注入 :输入的url与http响应体拼接

    (2)目录穿越漏洞

    这个常见于Nginx做反向代理的情况,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。
    假设静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名,url上/files没有加后缀/,而alias设置的/home/是有后缀/的,所以我们访问/files../,就相当于访问/home/../,因为/files等价于于/home/。这个就导致我们可以从/home/目录穿越到他的上层目录。

    (3)add_header被覆盖:

    Nginx配置文件子块(server、location、if)中的add_header,将会覆盖父块中的add_header添加的HTTP头,造成一些安全隐患。

    如下列代码,整站(父块中)添加了CSP头。

    0x04 修复建议

    不要乱配置就可以了,一般不会出现这个问题。上面都有代码了,应该是会修复了吧。

    0x05 参考文献

    https://www.ruanyifeng.com/blog/2016/09/csp.html (阮一峰yyds

    https://www.leavesongs.com/PENETRATION/Sina-CRLF-Injection.html (这两篇看了,大体明白了但还是没复现成功,有时间再研究吧
    https://www.leavesongs.com/PENETRATION/bottle-crlf-cve-2016-9964.html

    0x06 免责声明

    本漏洞复现文章仅用于学习、工作与兴趣爱好,并立志为网络安全奉献一份力量,凡是利用本博客相关内容的无良hackers造成的安全事故均与本人无关!

  • 相关阅读:
    Linux基础(一)
    计算机基础之网络基础
    计算机基础之操作系统
    计算机基础之计算机硬件基础
    .NET Reflector 8.2支持VS2013高亮显示和代码地图视图
    jQuery图表开源软件
    8个实用的页面布局和用户界面jQuery插件
    关于mvc3.0RadioButtonFor的使用
    链式调用-python
    给实数用千分位方法输出结果
  • 原文地址:https://www.cnblogs.com/cute-puli/p/15342173.html
Copyright © 2020-2023  润新知