许多的Web应用程序一般会有对服务器的文件读取查看的功能,大多会用到提交的参数来指明文件名 形如:http://www.nuanyue.com/getfile=image.jgp
当服务器处理传送过来的image.jpg文件名后,Web应用程序即会自动添加完整路径,形如“d://site/images/image.jpg”,将读取的内容返回给访问者。
初看,在只是文件交互的一种简单的过程,但是由于文件名可以任意更改而服务器支持“~/”,“../”等特殊符号的目录回溯,从而使攻击者越权访问或者覆盖敏感数据,如网站的配置文件、系统的核心文件,这样的缺陷被命名为路径遍历漏洞。在检查一些常规的Web应用程序时,也常常有发现,只是相对隐蔽而已。
发现路径遍历漏洞 路径遍历漏洞的发现,主要是对Web应用程序的文件读取交互的功能块,进行检测,面对这样的读取方式:
“http://www.nuanyue.com/test/downfile.jsp?filename=fan.pdf”
复制代码
我们可以使用 “../”来作试探,
比如提交Url:“getfile=/fan/fan/*53.pdf”,而系统在解析 是“d://site/test/pdf/fan/fan/../../*53.pdf" 通过“../”跳转目录“/fan”,即“d://site/test/pdf/*53.pdf”, 返回了读取文件的正常的页面。
路径遍历漏洞隐藏一般在文件读取或者展示图片功能块这样的通过参数提交上来的文件名,从这可以看出来过滤交互数据是完全有必要的。恶意攻击者当然后会利用对文件的读取权限进行跨越目录访问, 比如访问一些受控制的文件,“../../../../../../../etc/passwd“或 者”../../../../boot.ini“,当然现在部分网站都有类似Waf