uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。
目录穿越漏洞:目录穿越不仅可以访问服务器中的任何目录,还可以访问服务器中任何文件的内容。例如,攻击者通过浏览器访问../../../../../../../../../../../../../../etc/passwd(此处较多../),就可以读取Linux服务器根目录下的etc目录下的passwd文件的内容。
目录穿越比目录浏览、目录遍历更具破坏性,目录穿越不仅可以读取服务器中任何目录及任何文件的内容,还可以执行系统命令。
为了避免使用者存取到服务器上未经许可的文件,服务器提供两个安全机制:1.根目录;2.文件存取权限。 服务器限制使用者只能存取web应用程序所在的根目录以及根目录下的子目录中的文件
漏洞复现:
- 利用vulhub编译运行环境:(如果出现问题两种解决方案:1.前面利用过docker后没有将docker关闭导致8080端口被占用,重启一下docker即可 2.如果解决不了,直接重启虚拟机)
docker-compose build
docker-compose up -d
访问界面如下,说明配置成功:
根据官方提供的POC:即可成功验证(“/”url转码后得到%2f)http://IP:8080/..%2f..%2f..%2f..%2f..%2fetc/passwd
经过我的测试时发现,当只有一个../时没有界面:
而当../../即可访问到/etc/passwd: