漏洞描述

  • Nginx的目录遍历漏洞与Apache的一样,都是配置方面的问题。默认配置的话是不会开启目录遍历的。

  • 该漏洞与Nginx、php版本无关,属于用户配置不当造成的目录穿越漏洞。

  • nginx让目录中的文件以列表的形式展现只需要一条指令
    autoindex on;
    autoindex可以放在location中,只对当前location的目录起作用。你也可以将它放在server指令块则对整个站点都起作用。或者放到http指令块,则对所有站点都生效。

  • 下面是一个简单的例子:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AJprkqem-1580276630843)(attach/on.png)]

环境搭建

步骤一:linux下安装docker

apt install docker.io

步骤二:搜索nginx镜像

docker search nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cv9i30g7-1580276630845)(attach/search.jpg=4000x200)]

步骤三: 拉nginx镜像

docker pull nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E9VBRiLS-1580276630845)(attach/pull.jpg)]

步骤四:运行docker并检测nginx环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFx83HHh-1580276630846)(attach/docker.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mVdc2xXa-1580276630846)(attach/nginx.jpg)]

需要下载vim

  • apt-get update
  • apt-get install -y vim

漏洞复现

步骤一:添加autoindex on;

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

步骤二:在nginx服务器路径下创建文件夹并用浏览器访问

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

步骤三:修改配置文件并复现漏洞

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

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

总结:

  • cd:cd=change directory
  • 路径位置:可以在配置文件里面找到nginx服务下的html路径

参考连接:

  • https://www.cnblogs.com/yuzly/p/11208842.html
  • http://www.nginx.cn/692.html
  • https://blog.csdn.net/WY92139010/article/details/101977704

补充:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

漏洞防御:

  • 修改/etc/nginx/conf.d/default.conf,把i使用/闭合

在这里插入图片描述

  • 重启nginx服务,再次访问localhost:8001/i…/,提示404,说明该漏洞不存在
    在这里插入图片描述
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐