Open BANKA2017 opened 10 months ago
云签作为古老的软件,现在还有多少活跃用户我不清楚。爆破不需要知道邮箱或账号名这两个登录凭据中的任意一个,而是使用自增的 uid
,并且通过一般 log
都不会记录的 cookie
进行,所以我不清楚是否严重,也许有心人已经干了很久了——反正也没有记录
有的云签站可能开了登录注册页验证码,但这个漏洞本就无需经过登录所以也可以绕过
一旦爆破成功,即可拿到目标账号名下所有的明文 bduss
和 stoken
如果攻击目标是管理员:
bduss
/stoken
/邮箱及密码hash等信息5.01
已经修复了这个漏洞,直接更新并:
5.5.0
或以上以支持 password_hash()
/lib/globals.php
找到四个 substr(sha1(EncodePwd($p['pw'])), 4, 32)
(此处 $p
可能会是 $con_p
)并自行加盐(比如加上 $p['id']
)使不同帐号之间的 hash
不一样(没上面“安全”,但肯定比什么都不做好点)攻破本软件的用户几乎不会有任何收益,没有任何使用复杂散列算法的必要,能防止撞彩虹表就已经可以了
总之,社区是无法强制要求所有站点都更新的,并且可能永远都不会有人去利用这个费时费力的低收益漏洞
@enferas Please assign a CVE for this like #156
问题描述
云签使用
uid
和pwd
作为cookie
的两部分用来鉴权,由于计算pwd
时没有加盐,所以相同密码的用户的pwd
是一致的,这就导致相同密码的用户只需要简单修改cookie
的uid
部分即可开始尝试爆破。只要密码相同,不论是什么用户类型都可以互相访问https://github.com/MoeNetwork/Tieba-Cloud-Sign/blob/993247e0b3e2a86582549553d437b548ae3103a1/lib/globals.php#L143-L156
复现步骤
a
好了,此时我们可以看到tc_users
中相应用户的pw
的值为54f74fbfb94518a527a36474dc904c25
,uid
值为1
cookie
的pwd
为94f3e461f1f245f377893d39955685a3
b
,密码还是设为a
,这时除了cookie
的uid
为2
以外其他部分是一样的uid
的值改为1
即可登录管理员的a
帐号环境