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

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

缺陷编号:wooyun-2014-061084

漏洞标题:大汉版通某系统文件上传导致任意代码执行

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

漏洞作者: 路人甲

提交时间:2014-05-16 22:19

修复时间:2014-08-14 22:20

公开时间:2014-08-14 22:20

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

大汉版通某个系统存在两处文件上传,可Getshell

详细说明:

#1 漏洞文件
总共存在两处文件上传,路径如下

/xxgk/m_5_5/m_5_5_3/upload.jsp
/xxgk/m_5_5/m_5_5_3/import_style.jsp


选择其一贴下漏洞代码

<%
ListTable listtable = new ListTable(request);
out.println(listtable.getListTableCssJs());
sys.initSysPara(request);
//*得到用户信息*/
Merp_Pub_UserEntity userentity = UserRightBLF.getUserInfo(request);
String strFilePath = application.getRealPath("")
+ "/m_5_5/m_5_5_3/temphttps://wooyun-img.oss-cn-beijing.aliyuncs.com/upload/";//上传文件保存的路径
Convert.createDirectory(strFilePath);
CommonUploadFile upload = new CommonUploadFile(strFilePath, "");
boolean bl = false;
String[] strFiles = null;
try {
SysInit.init();
if (SysInit.m_strImportNoFileType == null) {
upload.setM_Notfiletype("exe,com,bat,php,asp,php3,phtml,jsp,aspx");
} else {
upload.setM_Notfiletype(SysInit.m_strImportNoFileType);
}
bl = upload.uploadFile(request);
} catch (Exception e) {
}
if (bl) {
StyleParse sp = new StyleParse(sys.appId, sys.webId);
sp.setUserentity(userentity);
String strXMLFile = "";
strFiles = upload.getAllFileName();
if (strFiles != null) {
for (int i = 0; i < strFiles.length; i++) {
strXMLFile = strFilePath + strFiles[i];
//解析xml文件
sp.importStyle(strXMLFile);
}
}
}


重点在这几行

String strFilePath = application.getRealPath("")
+ "/m_5_5/m_5_5_3/temphttps://wooyun-img.oss-cn-beijing.aliyuncs.com/upload/";//上传文件保存的路径
//...
if(SysInit.m_strImportNoFileType == null) {
upload.setM_Notfiletype("exe,com,bat,php,asp,php3,phtml,jsp,aspx");
} else {
upload.setM_Notfiletype(SysInit.m_strImportNoFileType);
}


很明显,程序采用了黑名单限制文件的上传,如下
upload.setM_Notfiletype("exe,com,bat,php,asp,php3,phtml,jsp,aspx");
这让我们没有办法上传jsp格式的文件(暂不考虑其它的绕过情况)
但是你们知道吗? jspx 同样可以解析为jsp
#2 漏洞测试
ok 那接下来进行漏洞的测试
随机在互联网上选取案例进行测试,这里为

http://xxgk.weifang.gov.cn/xxgk/m_5_5/m_5_5_3/import_style.jsp


如图所示

1.jpg


我们将xiao.jspx 改名为xiao.xml 上传..
提交后抓包修改文件名为1.jspx即可,如下图所示

2.jpg


此时已经在 /m_5_5/m_5_5_3/temphttps://wooyun-img.oss-cn-beijing.aliyuncs.com/upload/ 目录下生成了xiao.jspx 访问下 成功

3.jpg

漏洞证明:

#连接shell

http://xxgk.weifang.gov.cn/xxgk//m_5_5/m_5_5_3/temphttps://wooyun-img.oss-cn-beijing.aliyuncs.com/upload/xiao.jspx


如图所示

4.jpg


最高权限哦

[*] 基本信息 [ A:C:D:E:F: ]
D:\*****\tomcat\webapps\xxgk\> whoami
nt authority\system

修复方案:

严格过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-05-19 10:00

厂商回复:

感谢关注

最新状态:

暂无


漏洞评价:

评论

  1. 2014-05-16 22:25 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    要么就是后台吧,要么就是setup咯。猜测。

  2. 2014-05-17 13:17 | 动后河 ( 实习白帽子 | Rank:51 漏洞数:13 | ☭)

    如果不是jcms的话,我就鄙视你

  3. 2014-05-17 14:16 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @动后河 这个好像木有啥好鄙视的吧……

  4. 2014-05-18 03:23 | 动后河 ( 实习白帽子 | Rank:51 漏洞数:13 | ☭)

    @wefgod 确实

  5. 2014-08-14 22:59 | U神 ( 核心白帽子 | Rank:1285 漏洞数:142 | 感谢乌云,知恩不忘,其实我一直都在乌云默...)

    @wefgod 解析jspx好像要容器限制吧

  6. 2014-08-15 11:35 | 胡小树 ( 实习白帽子 | Rank:60 漏洞数:11 | 我是一颗小小树)

    我看好多人都是先展示分析代码,再演示利用方法。实际情况好像是看不到代码的,那不是要测试很多次嘛

  7. 2014-08-20 13:11 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @U神 tomcat默认情况支持