暴力破解概述:
暴力破解攻击:攻击者在不知道目标系统的账号密码的情况下的情况对目标系统的尝试登陆
如果一个网站没有对登陆接口实施防暴力破解的措施,或者实施了不合理的措施。则该称该网站存在暴力破解漏洞。
存在暴力破解漏洞的网站可能会遭受暴力破解,但成功的可能性并不是100%!
所以有些网站即虽然存在暴力破解漏洞,但其管理员可能会忽略它的危害。
暴力破解漏洞测试流程
确认目标是否存在暴力破解的漏洞。(确认被暴力破解的’可能性‘)
比如:尝试登陆-抓包---观察验证元素和response信息,判断是否存在被暴力破解的可能
配置自动化工具(比如线程、超时时间、重试次数等)。进行自动化操作。
字典优化的技巧
对目标站点进行注册,搞清楚账号密码的一些限制,比如目标站点要求密码必须是6位以上,字母数字组合,则可以按照此优化字典,比如去除不符合要求的密码。
如果爆破的是管理后台,往往这种系统的管理员是admin/administrator/root的几率比较高,可以使用着三个账号+随便一个密码,尝试登陆,观看返回的结果,确定用户名
输入admin/yyy返回“密码错误”,则基本上可以确定用户名是admin;因此可以只对密码进行爆破即可,提高效率。
Burp suite的使用
Intruder模块的介绍
Intruder模块可以通过对http request的数据包以变量的方式自定义参数,然后根据对应的策略进行自动化的重放。常用于自动化猜测/暴力破解过程中。
设置一个payload,先将第一个变量使用字典进行测试,然后再将第二个变量使用字典进行测试;
设置一个payload,所有的变量一起用字典内容被替换,然后一起尝试;
每个变量设置一个payload,分别使用对应的字典对变量进行同时替换;
需要为每一个变量设置一个payload,分别使用字典内容组合对变量进行替换;
对结果设置匹配的flag:通过一个标识符来区别结果,并在结果栏中flag出来;
暴力破解的绕过和防范(验证码&Token)
目前简单验证码已经有很成熟的识别技术,基本也等于形同虚设。不然12306的验证码为啥做得那么变态;所以除了设计安全的流程外验证码是否够复杂(而又不影响用户体验)也是在验证码设计中很重要的!
防暴力破解的措施总结
·对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时
1、讲token以“ type= ’hidden‘ ”的形式输出在表单中;
但,由于其token值输出在了前端源码中,容易被获取,因此也就失去了防暴力破解的意义。一般Token在防止CSRF上会有比较好的功效,具体讲在CSRF漏洞章节进行讲解。