博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx 配置错误导致漏洞
阅读量:3914 次
发布时间:2019-05-23

本文共 1478 字,大约阅读时间需要 4 分钟。

前言:

Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。

Voulhub靶机平台环境搭建和使用:

漏洞原理:

漏洞是由于开发者在对Nginx的配置中出现了错误而导致的。话不多说,开始我们的漏洞复现。靶机环境运行成功后,Nginx将会监听8080/8081/8082三个端口,分别对应三种漏洞。

 

查看Nginx配置文件

1 进入docker容器:

docker-compose exec nginx bash

2 进入Nginx配置文件夹

cd /etc/nginx/conf.d

3 分别查看三个错误的配置文件(红色框就是错误配置)

 

error1.conf : CRLF注入漏洞

Nginx会将$uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞。

错误的配置文件示例(原本的目的是为了让http的请求跳转到https上):

location / {

    return 302 https://$host$uri;

}

Payload: http://your-ip:8080/%0a%0dSet-Cookie:%20a=1,可注入Set-Cookie头。

即可构造一个XSS漏洞:

Payload:http://your-ip:8080/%0a%0dSet-Cookie:%0a%0d%0a%0d<img src=1 οnerrοr=alert(/xss/)>

error2.conf : 目录穿越漏洞

Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞。

错误的配置文件示例(原本的目的是为了让用户访问到/home/目录下的文件):

location /files {

    alias /home/;

}

Payload: http://your-ip:8081/files../ ,成功穿越到根目录:

error3.conf : add_header被覆盖

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

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

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全部失效:

 

XSS可被触发

 

END

异常:火狐访问8080端口显示: “SSL 接收到一个超出最大准许长度的记录,” 错误代码“ssl_error_rx_record_too_long”  ;从url从http跳转到了https

解决方案:待解决,估计是nginx配置443端口的问题,对SSL证书也不太理解,docker也是第一次使用。问题挺多,加油吧。慢慢来不急。

vulhub官方复现过程:

 

 

 

 

 

转载地址:http://dpirn.baihongyu.com/

你可能感兴趣的文章
Kafka
查看>>
Magicodes.IE 2.2发布
查看>>
应用交付老兵眼中的Envoy, 云原生时代下的思考
查看>>
.NET 开源项目 StreamJsonRpc 介绍[上篇]
查看>>
.NET Core微服务开发选项
查看>>
探讨NET Core数据进行3DES加密或解密弱密钥问题
查看>>
Vue 3拖更,尤雨溪介绍最新进展
查看>>
如何利用.NETCore向Azure EventHubs准实时批量发送数据?
查看>>
WPF 框架全构建环境虚拟机硬盘分享
查看>>
ABP框架 v3.0 已发布!
查看>>
使用.Net Core实现的一个图形验证码
查看>>
.NET 开源项目 StreamJsonRpc 介绍[中篇]
查看>>
Blazor带我重玩前端(三)
查看>>
基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (下篇)
查看>>
实现业务数据的同步迁移 · 思路一
查看>>
龙芯开源社区上线.NET主页
查看>>
eShopOnContainers 知多少[11]:服务间通信之gRPC
查看>>
闲谈设计模式
查看>>
平台or职位,你怎么选?
查看>>
骚年快答 | 技术中台与业务中台都是啥?
查看>>