该漏洞是由于配置错误导致的
漏洞原理:传送门
这个常见于Nginx做反向代理的情况,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。
环境:
vulhub靶场 进入nginx/insecure-configuration
运行docker-compose up -d
docker-compose up -d
8081端口为目录穿越漏洞
漏洞复现:
最终结果:
我们打开docker-compose.yml文件,看看里面的关系
我们发现./files/:/home/ 将/files/影射到了home目录下,
进入镜像去看看,查看/home目录下的文件,底下有一个help.txt文件
访问下files文件
尝试访问根目录,是否存在跨目录访问;
访问成功!
进而我们获得了一个任意文件下载漏洞。
存在该漏洞我们可以做什么呢?
我们获得了一个任意文件下载漏洞,我们就可以拿到他的php文件,通过查看php文件,我们也就看到数据库的用户名+密码;有一定的风险。
如何防御呢?
只需要保证location和alias的值都有后缀`/`或都没有这个后缀。
总结下:
存在该漏洞的原因是用户配置为 /files ;这样就会导致出现跨目录访问,我们将他改为 /files/ ,就可以避免此漏洞的发生。