nginx常见漏洞解析_nginx漏洞(4),【设计思想解读开源框架

本文详细解析了Nginx的常见安全漏洞,包括目录穿越、HTTP header头被覆盖、解析漏洞等问题,并提供了相应的解决方案。通过实例演示了如何通过修改配置文件来消除CRLF注入和目录穿越漏洞,强调了正确配置location、alias和add_header的重要性。同时,文章还探讨了Nginx本身的文件名逻辑漏洞(CVE-2013-4547)及其利用条件和防范措施。此外,文章提醒读者保持Nginx版本更新以降低程序漏洞的风险。
摘要由CSDN通过智能技术生成

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

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

1.2修改方案

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

location / {
return 302 https:// h o s t host hostrequest_uri;
}

因为**$request_uri和上边1和2相反,表示的是完整的uri并不会解码。**

另外,由$uri导致的CRLF注入漏洞不仅可能出现在上述两个场景中,理论上,只要是可以设置HTTP头的场景都会出现这个问题。

测试一下效果:

#1.编辑配置文件,投放进docker
[root@blackstone configuration]# cat fix1.conf
server {
listen 8080;

root /usr/share/nginx/html;

index index.html;

server_name _;

location / {
return 302 http:// h o s t : host: host:server_port$request_uri;
}
}

#2.将配置文件放到特定目录,重启nginx
[root@blackstone configuration]# docker exec -it fa2e43aabeec /bin/bash
root@fa2e43aabeec:/# cp fix1.conf /etc/nginx/conf.d/
root@fa2e43aabeec:/# rm -f /etc/nginx/conf.d/error1.conf
root@fa2e43aabeec:/etc/nginx/conf.d# nginx -s reload

#3.查看效果,确实可以有效消除CRLF的影响
[root@blackstone ~]# 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: Wed, 08 Feb 2023 18:44:14 GMT
Content-Type: text/html
Content-Length: 161
Connection: keep-alive
Location: http://192.168.2.169:8080/%0d%0aSet-Cookie:%20a=1

2. 目录穿越漏洞:

这个常见于Nginx做反向代理的情况,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。

假设静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名:

location /files {
alias /home/;
}

2.1利用方式

此时,访问http://example.com/files/readme.txt,就可以获取/home/readme.txt文件。

但我们注意到,url上/files没有加后缀/,而alias设置的/home/是有后缀/的,这个/就导致我们可以从/home/目录穿越到他的上层目录:

此时我们就获得了一个目录穿越漏洞,他可以进行任意文件的下载,例如php mysql等等。

虽然有些mysql禁止远程登录,但是可以通过mysql的用户名和密码去进行一个社工,如果MySQL的密码较为牢靠那么可能其他系统的密码也是此密码,当然这只是一个没好的臆想或者说猜测,

2.2解决方案

在进

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值