3

验证码安全问题汇总 | WooYun知识库

 6 years ago
source link:
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

验证码安全问题汇总

0x00 前言


[email protected][email protected] 相应的文章,只是觉得应该有个入门级的“测试用例”。本文不涉及OCR,不涉及暴力四六位纯数字验证码,不涉及没有验证码的情况(神马?没有验证码?没有验证码还讨论什么,要不人家不 care,要不人家已经胸有成竹有更牛逼的方法)。本文可能会与之前的某些文章有重合,可能与drops的“最严肃的安全原创平台”气质不符,请在家长指导下阅读。

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

图一

enter image description here

  • 1.客户端发起一个请求
  • 2.服务端响应并创建一个新的SessionID同时生成一个随机验证码。
  • 3.服务端将验证码和SessionID一并返回给客户端
  • 4.客户端提交验证码连同SessionID给服务端
  • 5.服务端验证验证码同时销毁当前会话,返回给客户端结果

0x01 安全问题及案例


根据上面的实现流程,我们大概可以从四个方面入手,客户端问题、服务端问题、验证码本身问题,还有一个验证码流程设计问题。

1. 客户端问题


客户端生成验证码

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

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

验证码输出客户端

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

WooYun: 索尼验证码实现缺陷

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

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

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

WooYun: 5173验证码可被绕过

2. 服务端


验证码不过期,没有及时销毁会话导致验证码复用

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

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

没有进行非空判断

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

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

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

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

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

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


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

3. 其他类型验证码绕过


“调试功能”还是设计缺陷?

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

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

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

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

“逗你玩”类型

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

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

万能验证码(后门?)

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

4. 验证码太简单,容易被机器识别


直接引用猪猪侠的两个金融案例

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

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

0x03修改建议


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

推荐Google的ReCaptcha

0x04 参考


https://www.owasp.org/index.php/Testing_for_Captcha_(OWASP-AT-008) http://www.mcafee.com/uk/resources/white-papers/foundstone/wp-attacking-captchas-for-fun-profit.pdf http://www.lijiejie.com/safe-issues-of-captcha/ http://*.wooyun.org

最后,祝大家愚人节快乐!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK