1、要下载的文件地址保存至数据库中。
2、也可通过判断网站语言,并根据其url中部分提供的参数,进行构造相关的路径信息,如收集到网站中间件版本为apache,则想办法构造../../../WEB-INF/web.xml等,然后查看其是否可被下载出来。随后可构造下载系统文件。
3、修复方案
4、漏洞描述
5、公开文件可放置在web应用程序下载目录中通过链接进行下载。
6、检测条件
7、敏感文件表
8、web应用程序可以使用chroot环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,时使其即使越权也在访问目录之内。www目录就是一个chroot应用。由chroot创造出的那个根目录,叫做“chroot*”(所谓”*”就是指通过chroot机制来更改某个进程所能看到的根目录,即将某进程限制在指定目录中,保证该进程只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全。详细具体chroot的用法,可参考:http://blog.****.net/frozen_fish/article/details/2244870
9、记录文件下载日志。
10、不允许提供目录遍历服务。
11、文件放在web无法直接访问的目录下。
12、通过web漏洞扫描工具对网站实施扫描可能发现目录遍历或者任意文件下载漏洞,发送一系列”../”字符来遍历高层目录,并且尝试找到系统的配置文件或者系统中存在的敏感文件。
13、净化数据:对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
14、用户下载文件之前需要进行权限判断。
15、漏洞利用代码
16、检测方法
17、任意文件下载漏洞也有可能是web所采用的中间件的版本低而导致问题的产生,例如ibm的websphere的任意文件下载漏洞,需更新其中间件的版本可修复。
18、网站URL中存在下载参数,并且未进行过滤../../../字符。
19、输出了文件内容。
20、文件路径保存至数据库,让用户提交文件对应ID下载文件。