1. 什么是目录遍历漏洞
目录遍历漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以为进一步入侵网站做准备。目录遍历漏洞可能存在于Web服务器软件本身,也可能存在于Web应用程序之中。好比如IIS或者Apache这些中间件若是配置不当,就会造成目录遍历漏洞。
这里要注意!!!目录遍历漏洞和任意文件读取漏洞不一样。目录遍历漏洞是泄露网站的目录结构,而任意文件读取不仅泄露网站的目录结构,而且可以直接获得网站文件的内容,甚至可以下载。但是目录遍历漏洞和文件包含漏洞本质以及利用方法一样,一定要区分的话,我理解如下:
目录遍历:是对本操作系统的文件进行读取;
文件包含:分别是本地包含和远程包含,本地包含和目录遍历一致;
2. 漏洞产生的根本原因
Web服务器或者Web应用程序对用户输入的文件名称缺少验证而导致。
3. 如何挖掘目录遍历漏洞
(1) 利用谷歌搜索挖掘
当确定目标站点时,例如test.com。
在谷歌搜索site:test.com.tw intitle:index of,如图:(当然,这里不一定是index of)
比如www.test.com/img/16234.png,我们将16234.png删去,查看img目录。
若如此显示,则同样能挖掘到目录遍历漏洞。
(2) 利用web漏洞扫描器扫描
(3) 利用../(目录跳转符)挖掘漏洞
例如:http://test.com/index.php?Filepath=xxx.jpg
可以看到这里的参数Filepath,很显然就是文件路径的意思,那这里加上../观察页面变化(典型特征:?file=content/?filename=xx.html/?filepath=xx.php/?dir=/?path=等)
http://test.com/xx/xx/xx/test.php?Filepath=../../../xxx.jpg
漏洞利用如上,通常我们的手法是利用../一个一个地加,直到页面出现敏感信息。
4. 挖到这个漏洞能做什么
挖掘这个漏洞主要是为了获取敏感信息,这对于渗透测试的信息收集环节有巨大帮助,继而攻陷整个服务器。
5. 漏洞造成的危害
目录遍历漏洞最大的危害就是能够让任意用户访问系统的敏感文件,例如Linux下的/etc/passwd文件,获取该文件后能破解出root用户的密码。
6. 发现此漏洞,该怎么修复
对于该问题还是要根据具体情况具体分析和解决,例如大部分情况下问题的关键就是../目录跳转符,当发现漏洞时,防御的第一要务就是对目录跳转符进行过滤。进一步防范的话,可以针对最终的文件路径进行判断,从而达到预防的目的。
7. 如何防范此漏洞
(1) 过滤../和~/目录跳转符、%00字符截断符、dir命令等;
(2) 合理配置Web服务器的目录权限;(最有效的方式)
(3) 隐藏内部相关配置细节,以免程序出错时显示出来;
(4) 对用户提交过来的文件名进行硬编码或者统一编码;
(5) 对文件后缀进行白名单控制,对包含了恶意的符号或者空字节进行拒绝。