验证码机制测试(读书笔记)

0x01:验证码暴力破解测试

验证码机制主要被用于防止暴力破解、防止DDOS攻击、识别用户身份等,常见的验证码主要有图片验证码、邮件验证码、短信验证码、滑动验证码和语音验证码。

以短信验证码为例。短信验证码大部分情况下是由4~6位数字组成,如果没有对验证码的失效时间和尝试失败的次数做限制,攻击者就可以通过尝试这个区间内的所有数字来进行暴力破解攻击。

测试方法:

攻击者填写任意手机号码进行注册,服务器向攻击者填写的手机号码发送短信验证码,攻击者设置验证码范围000000-999999、

00000-99999、0000-9999,对验证码进行暴力破解,通过返回数据包判断是否破解成功,然后通过破解成功的验证码完成注册。

修复建议:

a.设置验证码的失效时间,建议为180秒;

b.限制单位时间内验证码的失败尝试次数,如五分钟内连续失败5次即锁定该账号15分钟。

0x02:验证码重复使用测试

在网站的登录或评论等页面,如果验证码认证成功后没有将session及时清空,将会导致验证码首次认证之后可重复使用。

测试时可以抓取携带验证码的数据包重复提交,查看是否提交成功。

测试方法:

修复建议:

针对验证认证次数问题,建议验证码在一次认证成功后,服务端清空认证成功的session,这样

就可以有效防止验证码一次认证反复使用的问题。

0x03:验证码客户端回显测试

当验证码在客户端生成而非服务器生成时,就会造成此类问题。当客户端需要和服务器进行交互发送验证码时,可借助浏览器的工具查看客户端与服务器进行交互的详细信息。

测试方法:

攻击者进入找回密码页面,输入手机号与证件号,获取验证码,服务器会向手机发送验证码,

通过浏览器工具查看返回包信息,如果返回包中包含验证码,证明存在此类问题。

修复建议:

1、禁止验证码本地客户端生成,应采用服务器验证码生成机制;

2、设置验证码的时效性,如180秒过期;

3、验证码应随机生成,且使用一次即失效。

0x04:验证码绕过测试

通过修改前端提交服务器返回的数据,可以实现绕过验证码,执行我们的请求。

测试方法:攻击者进入注册账户页面,输入任意手机号码,获取验证码,在注册账号页面填写

任意验证码,提交请求并抓包,使用抓包工具查看并修改返回包信息,转发返回数据包,查看是

否注册成功。

修复建议:建议在服务端增加验证码的认证机制,对客户端提交的验证码进行二次校验。

0x05:验证码自动识别测试

出自来自web攻防之业务安全

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文中提供的例子均来自网络已公开测试的例子,仅供参考。 说起暴力破解,它其实就是利用大量猜测和穷举的方式来尝试获取...
    CanMeng阅读 692评论 0 1
  • 我们都听说过情商这个概念,经常说谁情商高,谁情商低,既然情商这么流行,成为大家争相谈论的话题,那么我们很有必要了解...
    amazing2017阅读 737评论 3 2
  • 今天是周日,明天我就要上班,内心其实有点恐慌的,何解,呆在舒适带里习惯了吧,其实挺感谢老公的,多得他辛苦付出,给我...
    欢乐曦阅读 179评论 0 0
  • 2015年9月,我背上行囊告别故乡,去往一个未知的前途与叵测的命运,将年华与记弃之彼岸。初来乍到,青岛像一座迷宫一...
    唐半仙阅读 537评论 0 6
  • 当需要为UIView添加动画,而动画是多个的时候,就会出现completion block嵌套,如下: 在iOS7...
    不是谢志伟阅读 1,699评论 0 2