验证码安全问题汇总

首先,我们来看下整个验证码实现的原理

图一

1.客户端发起一个请求
2.服务端响应并创建一个新的SessionID同时生成一个随机验证码。
3.服务端将验证码和SessionID一并返回给客户端
4.客户端提交验证码连同SessionID给服务端
5.服务端验证验证码同时销毁当前会话,返回给客户端结果
0x01 安全问题及案例
根据上面的实现流程,我们大概可以从四个方面入手,客户端问题、服务端问题、验证码本身问题,还有一个验证码流程设计问题。

  1. 客户端问题
    客户端生成验证码

验证码由客户端js生成并且仅仅在客户端用js验证

WooYun: 南开大学信息门户网站设计不当可以爆破用户密码(利用密码猜用户)

验证码输出客户端

输出在html中(神一样的程序员)

WooYun: 索尼验证码实现缺陷

WooYun: 某会考报名系统验证码绕过可暴力破解(可导致用户信息泄露)

验证码输出在cookie中,这个在乌云中案例也是比较多的。

WooYun: 吉祥航空任意客票遍历

WooYun: 5173验证码可被绕过

  1. 服务端
    验证码不过期,没有及时销毁会话导致验证码复用

这个是最常见的,乌云上面有大量的案例。

WooYun: 苏宁易购某系统后台多个超级管理员弱口令(验证码可重复利用)

没有进行非空判断

很多时候,我们会遗留掉了验证过程中验证码为空的情况

比如去掉cookie中的某些值或者请求中验证码参数

WooYun: cmseasy后台暴力破解验证码绕过

WooYun: ecshop后台暴力破解验证码绕过

WooYun: ecshop绕过验证码暴利破解2

产生的验证码问题集内的答案非常有限

WooYun: 139邮箱图验证码绕过漏洞(目前图形验证码的可预测案例)

  1. 其他类型验证码绕过
    “调试功能”还是设计缺陷?

WooYun: 阿里巴巴某员工登录接口验证码绕过可撞弱密码

WooYun: 凡客某处验证码绕过漏洞

WooYun: 财付通商户版登录验证码绕过

WooYun: 正方教务管理系统设计错误,可绕过验证码进行暴破或扫弱口令

“逗你玩”类型

有验证码,你输入什么 ,它都给你过,不验证

WooYun: 网宿某站SQL注入漏洞及验证码绕过

万能验证码(后门?)

WooYun: 百度空间用户登录绕过验证码验证

  1. 验证码太简单,容易被机器识别
    直接引用猪猪侠的两个金融案例

WooYun: 银行业(招商银行)设计缺陷可被穷举攻击

WooYun: 光大证券交易系统资金账号可被穷举攻击

0x03修改建议
梳理清楚验证码实现逻辑。(包括不限于验证码会话及时销毁等) 验证码不要太简单。扭曲、粘连等。

推荐Google的ReCaptcha

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值