discuz3.4出现越权登陆漏洞,漏洞分析
简述
Discuz是1个通用性的app系统软件。近期见到1个Discuz逻辑性系统漏洞,该系统漏洞来源于Discuz微信登录作用。Discuz 3.4默认设置装上微信登录。运用这一系统漏洞网络攻击可以滥用权力登录社区论坛别的vip会员的账户乃至是管理人员账户,关键还得看腿。
基本原理
最先看过下创作者的叙述,“假如有客户点了一下下关联手机微信,可是并沒有关联” 这话说的很模糊不清,刚开始沒有搞清楚啥意思。随后跟踪编码看过一下下。
系统漏洞源代码坐落于/upload/source/plugin/wechat/wechat.inc.Python文档中。在226-246行:
关键看看编码的逻辑性:
第231行:从common_member_wechatmp表查寻相匹配openid的第一个結果,这儿openid可以由客户操纵。
$mpmember = C::t(#wechat#common_member_wechatmp)->fetch_By_openid($wxopenid ? $wxopenid : $_set[wxopenid]);
下边是fetch_By_openid涵数。
232行:从common表格中取下相匹配uid的全部結果,array_keys($mpmember)回到的是上一步查寻统计数据的uid值。
$mpmembers = C::t(common_member)->fetch_all(array_keys($mpmember));
234-237行:
取上一步的第一个统计数据,随后从common_member_archive表中取下相匹配uid的客户统计数据,将该客户设定为登陆情况。
$memberfirst = array_shift($mpmembers);
$member = getuserbyuid($memberfirst[uid], 1);
if($member) {
setloginstatus($member, 1296000);
据此逻辑性,换句话说要是了解客户的openid就能登录客户的账户。看过下微信接口文档,这一openid是惟一的,而且只能客户受权了以后,微信公众号才可以获得。这儿显而易见失去openid。
在创作者的payload中沒有见到openid主要参数。
我觉得这一Payload仅仅登录了openid为空的第一位客户。openid为空的状况现阶段发觉根据/plugin.Python?Id=wechat:wechat&ac=wxregister&username={name}这类方法可以使openid为空,但申请注册的是1个新的账户。
依据创作者常说 “假如有客户点了一下下关联手机微信,可是并沒有关联,会载入common_member_wechatmp”,这儿“并沒有关联”的含意就是说关联不成功,openid为空,但创作者应用的哪种关联方式说的很模糊不清。
下一个是滥用权力消除特定uid关联的手机微信。一样在webchat.inc.Python,分辨csrftoken恰当后,删掉common_member_wechatmp表格中相匹配uid的统计数据。
依据左右2个洞,可以遍历而且登录全部openid为空的帐户。先登陆第一位openid为空的账户->随后解绑->再登录以后即是下一个openid为空的客户……,脸好得话是可以登录admin的。
payload
消除特定uid关联的手机微信:/plugin.Python?Id=wechat:wechat&ac=unbindmp&uid={uid}&hash={formhash}
登录第一位openid为空的账户:/plugin.Python?Id=wechat:wechat&ac=wxregister
修补
在最新版中创作者删掉了这些编码。下载最新版只能。
参照
htpp://gitee.Com/ComsenzDiszuz/DiscuzX/issue/IPRUI
文中由白帽汇原創,转截请标明来源于:htpp://nosec.org/home/detail/2256.html语言
白帽汇从业网络信息安全,致力于安全性互联网大数据、公司威协谍报。
企业商品:FOFA-网络空间安全百度搜索引擎、FOEYE-网络环境检索系统、NOSEC-安全性信息服务平台。
为您带来:网络环境测绘工程、公司财产搜集、公司威协谍报、应急响应服务项目。
相关文章
- 3条评论
- 余安夙世2022-05-28 20:42:22
- uid的客户统计数据,将该客户设定为登陆情况。 $memberfirst = array_shift($mpmembers); $member = getuserbyuid($memberfirst[uid], 1); if($member) { setloginstatu
- 假欢掩吻2022-05-28 20:45:25
- hatmp)->fetch_By_openid($wxopenid ? $wxopenid : $_set[wxopenid]); 下边是fetch_By_openid涵数。 232行:从common表格中取下相匹配uid的全部結果,array_keys($mpme
- 惑心忿咬2022-05-28 23:20:31
- 简述 Discuz是1个通用性的app系统软件。近期见到1个Discuz逻辑性系统漏洞,该系统漏洞来源于Discuz微信登录作用。Discuz 3.4默认设置装上微信登录。运用这一系统漏洞网络攻击可以滥用权力登录社区论坛别的vip会员的账户乃至是管理人员账户,关键还