最近研究网站的登陆机制,想看看discuz的模式看有什么参考的,发现确实有很多漏洞值得借鉴。
discuz关于破解用户密码的基础限制是同一个用户五次输入错误就屏蔽IP。
1、现在有一种做法是尝试简单密码刷多个账户。如尝试888888来刷论坛所有的用户一次。至于用户名单自然可以通过循环读取用户空间的来获取。
原理:因为同一个用户只要尝试不达到5次,ip是不会被discuz屏蔽的,所以即使黑客刷了discuz所有用户一次,discuz本身并不会阻挡。
2、这时,站长们很自然想起discuz提供的验证码功能,discuz验证码种类丰富貌似强大。
但实际上对这种破解简单密码是完全一点用都没的。 因为快捷登陆接口(inajax=1)提交时是验证密码成功后才开始检验验证码的。这样黑客依然可以刷账户,只要看见获取的提示是验证码错误即可判断是密码成功了。
3、主登录页面,这个页面会提示验证码才能提交。但事实上是这样? 只需你输入一次正确的验证码,用户名和密码可以不断更改来尝试,而不会提示刷新验证码的。也是等于无用。
涉及版本包括x2.0 x2.5,更旧的版本不知。 而且关于discuzx机制里面东西我还不清楚,但表面的验证问题我是操作过的。
刚也发了微博