一、漏洞描述
目录遍历漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以为进一步入侵网站做准备。目录遍历漏洞可能存在于Web服务器软件本身,也可能存在于Web应用程序之中。好比如IIS或者Apache这些中间件若是配置不当,就会造成目录遍历漏洞。
目录遍历漏洞和任意文件读取漏洞不一样。
目录遍历漏洞是泄露网站的目录结构;
任意文件读取不仅泄露网站的目录结构,而且可以直接获得网站文件的内容,甚至可以下载。
二、测试方法
1. 比如http://**.**.**.**:9080/imageFiles/test.jpg,我们将test.jpg删去,查看imageFiles目录。
2.利用web漏洞扫描器扫描
3.利用搜索引擎挖掘
当确定目标站点时,例如test.com。
在谷歌搜索site:test.com intitle:index of,如图:(当然,这里不一定是index of)
4.利用../(目录跳转符)挖掘漏洞
例如: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
漏洞利用如上,通常我们的手法是利用../一个一个地加,直到页面出现敏感信息。
三、漏洞危害及修复方法
3.1 危害
挖掘这个漏洞主要是为了获取敏感信息,最大的危害就是能够让任意用户访问系统的敏感文件,例如Linux下的/etc/passwd文件,获取该文件后能破解出root用户的密码,这对于渗透测试的信息收集环节有巨大帮助,继而攻陷整个服务器。
3.2 修复方法
过滤../和~/目录跳转符、%00字符截断符、dir命令等;
合理配置Web服务器的目录权限;(最有效的方式)
隐藏内部相关配置细节,以免程序出错时显示出来;
对用户提交过来的文件名进行硬编码或者统一编码;
对文件后缀进行白名单控制,对包含了恶意的符号或者空字节进行拒绝。