Nginx 文件名逻辑漏洞CVE-2013-4547

一 漏洞描述

非法字符空格和截止符(\0)会导致Nginx解析URI时的有限状态机混乱,此漏洞可导致目录跨越及代码执行

受影响版本

影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

二 环境搭建docker-compose,vulhub

https://blog.csdn.net/weixin_52221158/article/details/125933759

vulhub:https://github.com/vulhub/vulhub

vulhub-master/nginx/CVE-2013-4547]
└─# docker-compose up -d

目标 Ubuntu 192.168.1.128

三 漏洞复现

访问ip:端口,上传文件.txt,进行抓包在文件后添加一个空格

在这里插入图片描述

访问上传文件进行抓包,更改为1.gif …php(空格…)

http://192.168.1.128:8080/uploadfiles/1.gif

在hex界面 .jpg.php中间添加 2000

在这里插入图片描述

四 参考链接

https://www.cnblogs.com/masses0x1/p/15780872.html

Nginx越界读取缓存漏洞(CVE-2017-7529)

一 漏洞描述

Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP返回包头”+“HTTP返回包体”。如果二次请求命中了该缓存文件,则Nginx会直接将该文件中的“HTTP返回包体”返回给用户。

如果我的请求中包含Range头,Nginx将会根据我指定的start和end位置,返回指定长度的内容。而如果我构造了两个负的位置,如(-600, -9223372036854774591),将可能读取到负位置的数据。如果这次请求又命中了缓存文件,则可能就可以读取到缓存文件中位于“HTTP返回包体”前的“文件头”、“HTTP返回包头”等内容。

受影响版本

影响版本:Nginx version 0.5.6 - 1.13.2

二 环境搭建docker-compose,vulhub

https://blog.csdn.net/weixin_52221158/article/details/125933759

vulhub:https://github.com/vulhub/vulhub

vulhub-master/nginx/CVE-2013-4547]
└─# docker-compose up -d

目标 Ubuntu 192.168.1.128

三 漏洞复现

环境启动,访问http://your-ip:8080即可查看到Nginx默认页面,这个页面实际上是反向代理的8081端口的内容

在这里插入图片描述

修改poc.py为自己的ip,执行py文件

 python3 poc.py http://192.168.1.128:8080

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gVH6Tfy4-1664681458375)(../../../../img/Nginx/3.png)]

越界读取到了位于“HTTP返回包体”前的“文件头”、“HTTP返回包头”等内容。

如果读取有误,请调整poc.py中的偏移地址(605)

四 修复

Nginx version 1.13.3, 1.12.1

五 参考链接

https://www.cnblogs.com/masses0x1/p/15780872.html

Nginx越界读取缓存漏洞(CVE-2017-7529)

一 漏洞描述

CRLF注入漏洞

nginx的错误配置如下,该配置的用意是让http请求跳转到https请求。其中$uri就是我们的访问的地址,该变量可控。其中https://$host$uri会出现在http响应报文中,这样我们就可以通过改变$uri来控制http的响应报 文。

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

受影响版本

影响版本:Nginx version 0.5.6 - 1.13.2

二 环境搭建docker-compose,vulhub

https://blog.csdn.net/weixin_52221158/article/details/125933759

vulhub:https://github.com/vulhub/vulhub

vulhub-master/nginx/CVE-2017-7529]
└─# docker-compose up -d

目标 Ubuntu 192.168.1.128

三 漏洞复现

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5hassGt7-1664681644183)(http://angus.gq/Nginx/4.png#pic_center)]

目录穿越漏洞

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

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

location /files {
    alias /home/;
}

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YXGr3Es6-1664681458377)(../../../../img/Nginx/5.png)]

四 参考链接

https://vulhub.org/#/environments/nginx/insecure-configuration/

Nginx 解析漏洞复现

一 漏洞描述

该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。

1、由于nginx.conf的错误配置导致nginx把以".php"结尾的文件交给fastcgi处理,为此可以构造http://172.168.30.190/uploadfiles/hacker.png/XXXX.php ,其中hacker.png是我们上传的包含PHP代码的图片文件。

2、但是fastcgi在处理"XXXX.php"文件时发现文件并不存在,这时php.ini配置文件中cgi.fix_pathinfo=1 发挥作用,这项配置用于修复路径,如果当前路径不存在则采用上层路径。为此这里交由fastcgi处理的文件就变成了"/test.png"。

3、 最重要的一点是php-fpm.conf中的security.limit_extensions配置项限制了fastcgi解析文件的类型(即指定什么类型的文件当做代码解析),此项设置为空的时候才允许fastcgi将".png"等文件当做代码解析。

注:限制fpm允许解析的脚本扩展名。此设置可以预防web服务器配置的错误。应当限制fpm仅仅解析.php扩展名,阻止恶意用户使用其他扩展名运行php代码。默认值:.php

受影响版本

Nginx 1.x 最新版
PHP 7.x最新版

二 环境搭建docker-compose,vulhub

https://blog.csdn.net/weixin_52221158/article/details/125933759

vulhub:https://github.com/vulhub/vulhub

vulhub-master/nginx//nginx_parsing_vulnerability
# docker-compose up -d

目标 Ubuntu 192.168.1.128

三 漏洞复现

访问your-ip:port,同时上传1.jpg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C945IKZj-1664681821713)(http://angus.gq/Nginx/7.png#pic_center)]

增加/.php后缀,被解析成PHP文件:

[外链图片转存中...(img-P9UpgW7I-1664681842594)]

编写一句话木马,写进2.jpg,通过蚁剑连接成功webshell

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OKTveAyW-1664681458380)(../../../../img/Nginx/9.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NyhUYNor-1664681863954)(http://angus.gq/Nginx/10.png#pic_center)]

四 参考链接

https://www.icode9.com/content-3-1368117.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值