Nginx 配置错误导致漏洞

Nginx 配置错误导致漏洞

运行成功后,Nginx将会监听8080/8081/8082三个端口,分别对应三种漏洞。

在这里插入图片描述

Mistake 1. CRLF注入漏洞

漏洞描述

CRLF是”回车 + 换行”(\r\n)的简称,,其十六进制编码分别为0x0d和0x0a。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码。CRLF漏洞常出现在Location与Set-cookie消息头中,可造成固定会话漏洞和反射型xss漏洞。

漏洞原理
Nginx会将$uri进行解码,导致传入%0d%0a即可引入换行符,造成CRLF注入漏洞。
错误的配置文件示例:
location / {
    return 302 https://$host$uri;
}
漏洞复现
访问页面,并抓包
http://10.9.75.198:8080/%0d%0aSet-Cookie:%20a=1

在这里插入图片描述

再次注入:
%0d%0a%0d%0a<script>alter(1)</script>
http://10.9.75.198:8080/%0d%0a%0d%0a<script>alter(1)</script>

在这里插入图片描述

漏洞修复

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

Mistake 2. 目录穿越漏洞

漏洞描述

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

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

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

location /files {
    alias /home/;
}
漏洞复现
http://10.9.75.198:8081/files../

在这里插入图片描述

漏洞修复
使用/闭合/files,形成/files/

在这里插入图片描述

在这里插入图片描述

重启nginx服务,再次访问http://10.9.75.198/files../,提示404,说明该漏洞不存在。

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值