web安全(7)-- 任意文件下载漏洞

1.1 漏洞描述

    一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等。

1.2 漏洞危害

    下载服务器任意文件,如脚本代码,服务及系统配置文件等;可用得到的代码进一步代码审计,得到更多可利用漏洞

1.3 漏洞演示

    该部分主要讲述两种简单的利用方法,下载tomcat的配置文件和下载网站本身的源代码。

1)Jsp站点的一个下载点:

http://www.test.cn/down.jsp?filename=%D5%D0%B1%EA%CF%EE%C4%BF%C9%EA%C7%EB1.doc&path=C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/webapps/ZTBWZ/upload/%D5%D0%B1%EA%CF%EE%C4%BF%C9%EA%C7%EB1.doc

    可以看到该下载点,有两个参数,其实是一样的,很容易看出path是待下载文件的在服务器上的绝对路径。而且网站放到tomcat的安装路径下,这一点很重要,说明可以直接访问tomcat的manager/html

    请求: http://www.test.cn/manager/html

    可以看到访问正常,输入用户名和密码就可以登录。

    因此下一步就是下载tomcat的配置文件tomcat-users.xml(里面保存登录的用户名和密码)

    首先需要对tomcat配置有些了解,具体配置如下:

    tomcat-users.xml 在conf文件下,这样就可以直接使用下载点下载该文件。

    因此构造url如下:

http://www.test.cn/down.jsp?filename=tomcat-users.xml&path=C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/conf/tomcat-users.xml

    下载成功:

    打开该文件获得用户名和密码

    登录成功

    下面直接,上传一个war文件,就可以获得webshell,完成了一次简单的测试。

2)下载网站本身源代码

    下载点: http://test.edu.cn/file.do?method=downFile&fileName=20080505094144.doc

    测试一下不能访问http://test.edu.cn/manager/html

    上述方法失效。
首先下载网站的配置文件jsp的配置文件放在根目录WEB-INF/Web.xml下(一般都有很多内容,有时含有数据库连接用户名和密码等关键信息)
访问:

http://test/file.do?method=downFile&fileName=../WEB-INF/Web.xml

    下载后打开,关键内容:

    后台使用fckeditor编辑器,该编辑器漏洞很多,直接使用该编辑器直接上传路径

http://test//admin/FCKeditor/editor/filemanager/browser/default/browser.html?Type=image&Connector=connectors/jsp/connector

    选择一个jspshell直接上传,获得webshell,没有任何限制

    系统权限,渗透完成。

1.4 修复方案

    1)过滤点(.)使用户在url中不能回溯上级目录

    2)正则严格判断用户输入参数的格式

    3)将下载区独立出来,放在项目路径外,给每个下载资源固定的URL,而不是所有的下载资源都是统一的URL:http://www.test.com/download?filename=文件名

1.5 相关参考

http://www.cnblogs.com/Time-Cat00/p/5810770.html

http://h.evil.blog.163.com/blog/static/997935042012223112435259/

你可能感兴趣的:(web安全)