1       目录遍历***原理介绍

目录遍历***又称目录穿越、恶意浏览、文件泄露等,***者利用系统漏洞访问合法应用之外的数据或文件目录,导致数据泄露或被篡改。

比如我们之前一直使用的Web服务器平台NMPServer,它的网站主目录为C:\NMPServer\NPMserv\www,理论上讲网站的所有内容都应该位于这个主目录里,即使内容位于别的位置,也应该采用虚拟目录的形式将之链接到主目录中。作为客户端,当然也只能访问主目录中的内容。但是如果网站存在漏洞,那么客户端就可以突破主目录的限制,而去访问其他目录中(比如C:\Windows)的内容,这也就是所谓的目录遍历***。

最常见的目录遍历***就是利用“双句点代表父目录”机制进行***。比如我们之前在远程文件包含***中所做的测试网页test.php,在这个网页中就存在有目录遍历漏洞:


在客户端可以通过下面的形式进行目录遍历***,可以看到直接打开了服务器上的C:\Windows\system.ini文件。


URL中比较重要的部分就是“file=../../../windows/system.ini”,“../”代表上一级的父目录,因而“../../../”就表示从网站主目录中向上退了3级,网站的主目录是C:\NMPServer\NPMserv\www,因而“../../../”就是退到了C盘根目录。在***过程中,***并不清楚网站的主目录位置,但是只要通过简单的测试就可以推断出结果。

因而,通过目录遍历***,***就可以突破网站主目录的限制,而去访问服务器上的敏感文件。

遍历目录其实并不能算是漏洞,因为它是IIS的一个功能项。在IIS中将该选项勾上后,用户就可以通过目录的形式访问网站中的文件,通常这项功能被用于共享文件。但由于管理员的疏忽或经验不足,在网站中开启了这项功能,这就是一个不折不扣的大漏洞了。

2       ***实例分析

2.1    利用Web应用代码进行目录遍历***的实例

  在包含动态页面的Web应用中,输入往往是通过GET或是POST的请求方法从浏览器获得,以下是一个GETHttp URL请求示例:

  http://test.webarticles.com/show.asp?view=oldarchive.html

  利用这个URL,浏览器向服务器发送了对动态页面show.asp的请求,并且伴有值为oldarchive.htmlview参数,当请求 Web服务器端执行时,show.asp会从服务器的文件系统中取得oldarchive.html文件,并将其返回给客户端的浏览器,那么***者就可 以假定show.asp能够从文件系统中获取文件并编制如下的URL

  http://test.webarticles.com/show.asp?view=../../../../../Windows/system.ini

  那么,这就能够从文件系统中获取system.ini文件并返回给用户,../的含义这里就不用多说了,相信大家都会明白。***者不得不去猜测需要往上多少层才能找到Windows目录,但可想而知,这其实并不困难,经过若干次的尝试后总会找到的。

2.2    利用Web服务器进行目录遍历***的实例

除了Web应用的代码以外,Web服务器本身也有可能无法抵御目录遍历***。这有可能存在于Web服务器软件或是一些存放在服务器上的示例脚本中。

  在最近的Web服务器软件中,这个问题已经得到了解决,但是在网上的很多Web服务器仍然使用着老版本的IISApache,而它们则可能仍然无法抵御这类***。即使你使用了已经解决了这个漏洞的版本的Web服务器软件,你仍然可能会有一些对***来说是很明显的存有敏感缺省脚本的目录。

  例如,如下的一个URL请求,它使用了IIS的脚本目录来移动目录并执行指令:http://server.com/scripts/..%5c../Windows/System32/cmd.exe?/c+dir+c:\

这个请求会返回C:\目录下所有文件的列表,它使通过调用cmd.exe然后再用dir c:\来实现的,%5cweb服务器的转换符,用来代表一些常见字符,这里表示的是“\

3       发现***方法

事件发现:

1、通过日志发现: Web应用服务器log中会记录针对用户的访问行为,如果发现未授权用户访问越级目录内容,或,进行超越Web访问的通过url参数对规定目录之外的系统进行操作的行为,基本可以判定目录遍历***行为正在发生;

2、通过漏洞扫描工具发现:采用漏扫工具去扫描web服务器,如果存在漏洞,漏扫工具会曝出来具体漏洞,以及解决方法。

4       目录遍历防御方法

1、全面进行Web站点安全设置,防止***者能够仿冒成站点的其他用户来执行操作;确保Web站点对用户的安全分级授权方式越级和跨出合法区域的访问;

2、对使用的Web应用系统进行升级和放漏洞补丁操作。