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

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

缺陷编号:wooyun-2014-077695

漏洞标题:大汉版通系统文件上传无限制getshell

相关厂商:南京大汉网络有限公司

漏洞作者: 路人甲

提交时间:2014-09-30 17:20

修复时间:2014-12-26 17:22

公开时间:2014-12-26 17:22

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-30: 细节已通知厂商并且等待厂商处理中
2014-10-05: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-11-29: 细节向核心白帽子及相关领域专家公开
2014-12-09: 细节向普通白帽子公开
2014-12-19: 细节向实习白帽子公开
2014-12-26: 细节向公众公开

简要描述:

这系统貌似还没有人提交getshell的.

详细说明:

有些国家部委也在用这系统, @南京大汉网络有限公司 你们看着办吧.
0x01 漏洞的文件
/lm/sys/opr_uploadimg.jsp
造成漏洞的部分代码

if(action.equals("upload")){
//构造上传类,传入上传的路径
CommonUploadFile upload = new CommonUploadFile( strDictionary);
upload.setM_nLimitsize(50); //设置文件总大小
upload.setM_nFilesize(10); //设置单个文件大小
upload.setM_filetype("gif"); //设置允许上传文件类型
//上传操作
boolean b = upload.uploadFile(request);
Convert c = new Convert();
//上传成功
if(b){
out.println("<br>上传成功!");
String[] files = upload.getAllFileName();
//打印文件名称
for (int i=0;i<files.length;i++){
String filename = files[i];
File file = new File(strDictionary + filename);
c.copyFile(strDictionary + filename,strDictionary_img+img);
}
}else{
out.println("<br>上传失败,请检查文件大小和文件类型是否正确!");
}
info += "<script>top.buttomFrame.right_frame.location.reload();</script>";
}


其实这段代码表面上看起来安全性还可以,通过
upload.setM_filetype("gif"); //设置允许上传文件类型
限制了只能上传gif格式的文件,然而该段代码却有一个严重的逻辑漏洞:
c.copyFile(strDictionary + filename,strDictionary_img+img);
将上传的gif文件通过copyFile函数copy 到strDictionary_img+img,来看看img参数是怎么来的
String img = request.getParameter("img");
很明显是用户提交的参数,那么用户提交img = XXXXX.jsp shell不就到手了
0x02 漏洞证明
打开http://www.xxxx.gov.cn//lm/sys/opr_uploadimg.jsp
上传任意gif文件,抓包修改img参数,如下

33.jpg


点击GO,即可在images 目录下生成shell.jsp,可成功连接:

44.jpg

漏洞证明:

成功获取到的shell

44.jpg

修复方案:

copy干嘛呢?

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-12-26 17:22

厂商回复:

最新状态:

暂无