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

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

缺陷编号:wooyun-2015-095920

漏洞标题:URP综合教务系统通杀第四弹(补丁绕过&&继续无需登录GETSHELL)

相关厂商:cncert

漏洞作者: HackPanda

提交时间:2015-02-11 16:26

修复时间:2015-05-17 08:38

公开时间:2015-05-17 08:38

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

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

个人认为严格上来说不算补丁绕过,应该是补丁考虑不全,别升级过滤器了...修修业务逻辑代码吧 谢 麻烦转cncert吧还是...厂商偶尔不太靠谱 忽略

详细说明:

上一发拒绝服务也就是这个补丁过滤的地方,厂商14年11月份左右修补的是对 “正常上传”后的文件夹做了文件拓展名白名单,上一发这里还没关闭输出流,升级的时候又把picFile那个过滤漏了 这块已经电联厂家改正了。
直接看下代码吧,主要还是在第一法getshell那里分析的多,厂商并没有修改上传代码。

String fileExt=file.getFileExt();
String realPath=request.getRealPath("/lwUpLoadTemp");
String fileName=req.getParameter("xh")+"."+fileExt;
String filePath=realPath+"/"+fileName;
if(!file.isMissing()){
file.saveAs("/lwUpLoadTemp/"+fileName,mySmartUpload.SAVE_VIRTUAL); //fileName
}
String returnStr=TestBean.uploadLwyw(filePath,req);


上段代码中fileName是doPost过来的,在这里没有过滤跨目录符号 ../ 所以还是用之前的表单即可完成上传 也就是

file.saveAs("/lwUpLoadTemp/../sss.jsp")

这样绕开了补丁限制,在根目录生成一个shell

漏洞证明:

2.png


3.png


4.png

修复方案:

个人感觉过滤的再好,白名单,也不如好好看看业务代码,毕竟都是09年的东西了,难免会出些问题。
建议直接在上传层面做白名单,不要留在访问的时候限制,谢谢

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2015-02-16 08:36

厂商回复:

最新状态:

暂无