漏洞原理
目录穿越
Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞。
错误的配置文件示例(原本的目的是为了让用户访问到/home/目录下的文件):
location /files {
alias /home/;
}
在配置中设置目录别名时/files配置为/home/的别名,那么当我们访问/files…/时,nginx实际处理的路径时/home/…/,从而实现了目录穿越。
复现
环境
使用vulhub搭建
docker-compose up -d
主机 | ip |
---|---|
靶机:ubuntu20 | 192.168.237.138 |
攻击机:kali2020 | 192.168.237.139 |
利用
访问链接
实现目录穿越。
修复
正确配置应该如下:
location /files/ {
alias /home/;
}