万户OA任意文件上传导致代码执行(多处总结)

admin 2015年4月22日01:22:40评论2,291 views字数 253阅读0分50秒阅读模式
摘要

2014-07-06: 细节已通知厂商并且等待厂商处理中
2014-07-09: 厂商已经确认,细节仅向厂商公开
2014-07-12: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-09-02: 细节向核心白帽子及相关领域专家公开
2014-09-12: 细节向普通白帽子公开
2014-09-22: 细节向实习白帽子公开
2014-10-02: 细节向公众公开

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

缺陷编号: WooYun-2014-67391

漏洞标题: 万户OA任意文件上传导致代码执行(多处总结) 万户OA任意文件上传导致代码执行(多处总结)

相关厂商: cncert

漏洞作者: 瘦蛟舞万户OA任意文件上传导致代码执行(多处总结)

提交时间: 2014-07-06 15:44

公开时间: 2014-10-02 15:46

漏洞类型: 文件上传导致任意代码执行

危害等级: 高

自评Rank: 10

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

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

Tags标签: 第三方不可信程序 任意文件上传 任意文件上传

5人收藏


漏洞详情

披露状态:

2014-07-06: 细节已通知厂商并且等待厂商处理中
2014-07-09: 厂商已经确认,细节仅向厂商公开
2014-07-12: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-09-02: 细节向核心白帽子及相关领域专家公开
2014-09-12: 细节向普通白帽子公开
2014-09-22: 细节向实习白帽子公开
2014-10-02: 细节向公众公开

简要描述:

万户OA任意文件上传导致代码执行(多处总结)

详细说明:

code 区域
/defaultroot/public/editor/tpsc.jsp
/defaultroot/public/editor/1_tpsc.jsp
/defaultroot/work_flow/formOptJSPUpload.jsp
/defaultroot/work_flow/formStartJSPUpload.jsp
/defaultroot/govezoffice/custom_documentmanager/smartUpload.jsp?path=innerMailbox&fileName=innerMailFileName&saveName=innerMailSaveName&tableName=innerMaildisplaytable&fileMaxSize=0&fileMaxNum=0&fileType=&fileMinHeight=0&fileMinWidth=0&fileMaxHeight=0&fileMaxWidth=0
/defaultroot/custom_form/smartUpload.jsp?path=innerMailbox&fileName=innerMailFileName&saveName=innerMailSaveName&tableName=innerMaildisplaytable&fileMaxSize=0&fileMaxNum=0&fileType=&fileMinHeight=0&fileMinWidth=0&fileMaxHeight=0&fileMaxWidth=0
/defaultroot/public/jsp/goodsphotoupload.jsp?path=goodspic&visualName=goodsPicName&hiddenName=goodsPicName&del=yes
/defaultroot/public/jsp/livephotoupload.jsp?path=peopleinfo&visualName=empLivingPhotoTemp&hiddenName=empLivingPhoto&del=yes
/defaultroot/public/jsp/livephotoupload2.jsp?path=peopleinfo&visualName=empLivingPhotoTemp&hiddenName=empLivingPhoto&del=yes
/defaultroot/public/jsp/singleupload.jsp?path=desktop&visualName=unitImgName&hiddenName=unitImgSaveName&del=yes
/defaultroot/public/jsp/smartUpload.jsp?path=innerMailbox&fileName=innerMailFileName&saveName=innerMailSaveName&tableName=innerMaildisplaytable&fileMaxSize=0&fileMaxNum=0&fileType=&fileMinHeight=0&fileMinWidth=0&fileMaxHeight=0&fileMaxWidth=0

上面是面哥发的,自己看了下源码,发现有上传的地方基本都是调用smartUpload的javabean。于是顺手找了下剩下的上传点。

特征代码

code 区域
<%@ page language="java" import="com.jspsmart.upload.*"%>
<jsp:useBean id="myUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />

有部分使用apache fileupload组件的但是通用性不强就不说了。

漏洞证明:

/defaultroot/customize/upload.jsp (需截断doc)

/defaultroot/information_manager/informationmanager_upload.jsp (无限制直接上传)

/defaultroot/work_flow/workflow_upload.jsp (无过滤,报错前已经执行成功,鸡肋未返回文件名可以根据时间暴力采集)

/defaultroot/dragpage_department/upload.jsp (需截断jpg)

/defaultroot/skin/5/dragpage_department/upload.jsp (需截断jpg)

/defaultroot/information_manager/产品-信息管理UTF-8-2009--8.21.1/defaultroot/information_manager/information_smartUpload.jsp(通用性不强,无过滤)

/defaultroot/dossier/dossier_import.jsp

代码大致就分一种无过滤的,直接可以上传shell。

code 区域
myUpload.initialize(pageContext);
myUpload.upload();
for(int j = 0; j < myUpload.getFiles().getCount(); j ++){
myRandom=new **.**.**.**mon.util.Random().getRandom();
com.jspsmart.upload.File myFile = myUpload.getFiles().getFile(j);
if (!myFile.isMissing()) {
saveName=myRandom+"."+myFile.getFileExt();
fileName=myFile.getFileName();
myFile.saveAs("//upload//information//" + saveName);
}
}

另一种就是有过滤的,但是可以用截断绕过

code 区域
// Initialization
mySmartUpload.initialize(pageContext);

//mySmartUpload.setTotalMaxFileSize(100000);
mySmartUpload.setAllowedFilesList("jpg,gif,bmp,swf,avi");
// Upload
mySmartUpload.upload();

部分证明如下图。

万户OA任意文件上传导致代码执行(多处总结)

万户OA任意文件上传导致代码执行(多处总结)

万户OA任意文件上传导致代码执行(多处总结)

修复方案:

版权声明:转载请注明来源 瘦蛟舞@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-07-09 13:36

厂商回复:

CNVD确认所述情况(原理验证),由CNVD通过公开联系渠道向软件生产厂商(已经建立的万户网络公司渠道)通报。

最新状态:

暂无


漏洞评价:

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

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

登陆后才能进行评分


评价

  1. 2014-07-04 15:48 | U神 ( 核心白帽子 | Rank:1375 漏洞数:152 | 乌云核心菜鸟,此号处于联盟托管中....)

    0

    这一发出来又有好多oa要遭殃了,

  2. 2014-07-04 16:29 | 卡卡更健康 ( 普通白帽子 | Rank:164 漏洞数:39 )

    0

  3. 2014-07-04 20:58 | U神 ( 核心白帽子 | Rank:1375 漏洞数:152 | 乌云核心菜鸟,此号处于联盟托管中....)

    0

    @卡卡更健康 我不会告诉你,你说的这个中望的在对我公开的第一秒时间我就看了,然后花了一个晚上挖完了好几个文件上传。嘿嘿

  4. 2014-07-28 00:35 | 不许联想 ( 路人 | Rank:15 漏洞数:3 | 求收编,本人会注入,会上传,会Xss,会破...)

    0

    好期待啊!每天都来看看有没有公布!

  5. 2014-07-30 10:55 | wefgod ( 核心白帽子 | Rank:1829 漏洞数:183 | 力不从心)

    0

    这OA被你们玩坏了

  6. 2015-12-16 18:27 | lanyan ( 路人 | Rank:1 漏洞数:1 | qq 1614591916 求搞基 加我时记得备注woo...)

    0

    大牛奏是不一样 刚来几天求照顾!

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin