discuz的验证码是怎样被破解的

今天改程序,无意中在discuz的注册页面停留了一下,看到他那个验证码,我忽然想到前段时间一个论坛开起了验证码,仍然被spam疯狂注册,一个月被注册了2000多个帐号!
应该说这个验证码已经挺复杂的,主要是字体比较奇怪,如果找不到字体,用简单的模式匹配解码很难。
seccode.png

discuz的验证码只有四位数字,用穷举的方式暴力破解,最多只需要10000次(0000-9999)就可以找到正确的验证码。
问题在于discuz能不能使用暴力破解,于是要自己研究一下。

验证码实现验证的原理是这样的(明白人可以跳过):后台产生一个随机数,存放于服务器session,然后生成一个图片丢给客户端,同时给客户端一个sessionID。客户端输入一个验证码,提交到服务器的验证脚本,脚本根据sessionID去取session,跟提交上来的验证码比较,就可以获得结果。

discuz的注册系统是用ajax实现实时验证的,很方便使用,这也方便了我作测试,输入一个验证码马上会自动发送判断请求,点一下验证码的图片马上会换一个验证码。也因为方便,产生了很大的问题!

暴力破解的原理是:
1.如果程序不是在每次验证之后产生新的验证码的话,hacker就可以不断提交验证码去碰
2.如果服务器每次都更换新的验证码,可以在本地提供一个固定数字,不断向服务器提交验证请求,直到跟本地验证码一致,概率应该是一样的,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值