首先,我们来看下整个验证码实现的原理
图一
根据上面的实现流程,我们大概可以从四个方面入手,客户端问题、服务端问题、验证码本身问题,还有一个验证码流程设计问题。
验证码由客户端js生成并且仅仅在客户端用js验证
WooYun: 南开大学信息门户网站设计不当可以爆破用户密码(利用密码猜用户)
输出在html中(神一样的程序员)
WooYun: 某会考报名系统验证码绕过可暴力破解(可导致用户信息泄露)
这个是最常见的,乌云上面有大量的案例。
WooYun: 苏宁易购某系统后台多个超级管理员弱口令(验证码可重复利用)
很多时候,我们会遗留掉了验证过程中验证码为空的情况
比如去掉cookie中的某些值或者请求中验证码参数
WooYun: 139邮箱图验证码绕过漏洞(目前图形验证码的可预测案例)
WooYun: 正方教务管理系统设计错误,可绕过验证码进行暴破或扫弱口令
有验证码,你输入什么 ,它都给你过,不验证
万能验证码(后门?)
直接引用猪猪侠的两个金融案例
梳理清楚验证码实现逻辑。(包括不限于验证码会话及时销毁等) 验证码不要太简单。扭曲、粘连等。
推荐Google的ReCaptcha
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/
【via@乌云drops】
注:未经本站或乌云drops官方授权,请勿转载。
Copyright © hongdaChiaki. All Rights Reserved. 鸿大千秋 版权所有
联系方式:
地址: 深圳市南山区招商街道沿山社区沿山路43号创业壹号大楼A栋107室
邮箱:service@hongdaqianqiu.com
备案号:粤ICP备15078875号