​​insecure-configuration --复现

发布于:2022-12-06 ⋅ 阅读:(236) ⋅ 点赞:(0)

有什么不对的地方希望大佬指导,也希望正在学习渗透的小伙伴加油,坚持下去,努力耕耘,总有收获。

配置错误导致漏洞(insecure-configuration

影响版本

全版本

启动环境:

docker compose up -d

运行成功后,环境会开启三个端口:8080、8081、8082

在环境内可以看到错误代码所在处:vulhub-master/nginx/insecure-configuration/configuration

1.CRLF注入漏洞

2.目录穿越漏洞

 3.add_header被覆盖

 1.CRLF注入漏洞

location / {
        return 302 https://$host$uri;
    }

 原意是为了让HTTP请求跳转到HTTPS上,但是错误的配置导致nginx会将$uri解码,导致传入%0a%0d会导致换行,从而造成CRLF注入漏洞,可注入Set-cookie头/xss,payload:http://your-ip:8080/%0a%0dSet-cookie:%20a=123  or  %0a%0d<script>alert(1)</script>

 Set-cookie

xss

2.目录穿越漏洞

location /files {
        alias /home/;
    }

看大佬的文章说这其实不算个漏洞,而是nginx的特性,问题出在alias上,“在Nginx的虚拟目录配置上,也就是Alias。Alias正如其名,alias指定的路径是location的别名,不管location的值怎么写,资源的真实路径都是Alias指定的路径”(看了两遍才看懂,可以注意点看这句话,很好理解)通俗来讲就是,当我访问http://your-ip/files/时真正访问的路径是/home/,而不是我们以为的/var/www/html/files/

所以当我们访问http://your-ip/files../时候,大家觉应该访问哪,访问到了/home/的上一个目录,也就是“/”目录,(我的理解是http://your-ip/files../-->http://your-ip/files/../)所以就造成了一个目录穿越漏洞(不得不说大佬们的思维值得学习)

3. add_header被覆盖

nginx配置文件子块server中的add_header,将会覆盖父块中的add_header添加的HTTP头,造成一些安全隐患。如下列代码,整站(父块中)添加了CSP(Content-Security-Policy)头:CSP 提供了很多限制选项,涉及安全的各个方面。其中default-src设置为self,就意味着CSP限制了所有的外部资源,都只能从当前域名加载。

但是如果同时设置某个单项限制(比如font-src)和default-src,前者会覆盖后者,即字体文件会采用font-src的值,其他资源依然采用default-src的值

​

server {
        listen 8082;

        root /usr/share/nginx/html;

        index index.html;

        server_name _;

    autoindex on;

    add_header Content-Security-Policy "default-src 'self'";
    add_header X-Frame-Options DENY;

        location = /test1 {
                rewrite ^(.*)$ /xss.html break;
        }

    location = /test2 {
        add_header X-Content-Type-Options nosniff;
        rewrite ^(.*)$ /xss.html break;
    }
}

[点击并拖拽以移动]
​

/test2的location中又添加了X-Content-Type-Options头,导致父块中的add_header全部失效。

这个洞大佬们也没复现出来,我也没能弹窗。

看了大佬们的一些以前的文章,我认为是X-Content-Type-Options的原因,他添加了nosniff 响应标头,nosniff是什么呢,它能防止谷歌 Chrome 和 Internet Explorer 尝试从服务器声明的内容中模拟嗅探响应的内容类型,如果请求的类型为1. "style“且MIME类型不是"text/css”或2. "script“且MIME类型不是JavaScript MIME类型,则nosniff会阻止请求。但是nosniff只适用于"script“和"style”类型。此外,将nosniff应用于图像将与网站不兼容。

可能有人会有疑惑为什么不是CSP限制了外部资源,因为/test2中的add_header将父块中的内容覆盖了,导致他们失效了,没起到限制作用。而这样的话谷歌不弹窗也就说得通了。

 参考文章:

Content Security Policy 入门教程 - 阮一峰的网络日志

什么是"X-Content-Type-Options=nosniff"? - 问答 - 腾讯云开发者社区-腾讯云

Google Asks Publishers to Add Nosniff Response Headers

Vulhub中Nginx系列之CVE-2013-4547、CVE-2017-7529、Insecure-configuration、nginx_parsing_vulne 漏洞复现_德古拉的杂货铺的博客-CSDN博客

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到