Nginx文件名逻辑漏洞(CVE-2013-4547)
(1)
  • 影响范围

     0.8.41~1.4.3 & 1.5.0 <= 1.5.7
    
  • CVE-2013-4547
  1. 打开靶场

进入目录

cd vulhub-master/nginx/CVE-2013-4547

启动docker容器服务

service docker start

使用docker编译启动漏洞环境

docker-compose up -d

查看容器状态

docker ps
  1. 上传文件

打开后是一个文件上传的页面,
先成功上传了一个1.png文件

去访问这个路径是可以正常查看图片的

再上传一个文件:“shell.png ”(文件名有一个空格)

文件内容是:

 <?php phpinfo(); ?>

404无法访问这个图片,浏览器会对url进行一次编码,shell.png%20文件并不存在于服务器中
我们的目标是让Nginx认为该文件是图片文件并正确的在浏览器里显示出来
攻击语句:

/uploadfiles/shell.png \0.php

通过抓包可以修改我们的请求路径

成功访问

对url解析过程中存在其他处理,参考其他文章:https://www.yuque.com/u2167937/rclxdh/wsvif9
Nginx会认为上传的攻击语句的后缀为.php

  1. 绕过访问限制

原理是类似的,都是利用空格触发漏洞,去访问禁止访问目录下的文件

  1. Windows
    在Linux下触发很困难,因为上传的文件要带空格,并且保存到服务器也是带空格的,但是上传文件都是会被处理的。比如修改后缀名,对文件重命名

参考链接:
https://blog.werner.wiki/file-resolution-vulnerability-nginx/
http://www.91ri.org/9064.html
https://www.yuque.com/u2167937/rclxdh/wsvif9

本文为作者hackerbo.com发布,未经允许禁止转载!
上一篇 下一篇
评论
暂无评论 >_<
加入评论