暴力破解攻击:攻击者在不知道目标系统的账号密码的情况下的情况对目标系统的尝试登陆
暴力破解概述-字典
如果一个网站没有对登陆接口实施防暴力破解的措施,或者实施了不合理的措施。则该称该网站存在暴力破解漏洞。
存在暴力破解漏洞的网站可能会遭受暴力破解,但成功的可能性并不是100%!
所以有些网站即虽然存在暴力破解漏洞,但其管理员可能会忽略它的危害。
1、确认登陆接口的脆弱性
确认目标是否存在暴力破解的漏洞。(确认被暴力破解的’可能性‘)
比如:尝试登陆-抓包---观察验证元素和response信息,判断是否存在被暴力破解的可能
2、对字典进行优化
根据实际的情况对字典进行优化,提高爆破过程的效率。
3、工具自动化操作
配置自动化工具(比如线程、超时时间、重试次数等)。进行自动化操作。
技巧一:
根据注册提示信息进行优化
对目标站点进行注册,搞清楚账号密码的一些限制,比如目标站点要求密码必须是6位以上,字母数字组合,则可以按照此优化字典,比如去除不符合要求的密码。
技巧二:
如果爆破的是管理后台,往往这种系统的管理员是admin/administrator/root的几率比较高,可以使用着三个账号+随便一个密码,尝试登陆,观看返回的结果,确定用户名
比如:
输入xxx/yyyf返回“用户名或密码错误”;
输入admin/yyy返回“密码错误”,则基本上可以确定用户名是admin;因此可以只对密码进行爆破即可,提高效率。
基于表单的暴力破解实验-环境介绍
工具:Burp suite 网站:pikachu
burp suite的介绍
一个集成的web安全测试系统,有free和pro两个版本
现主要对proxy和intruder两个模块进行讲解和演示
Intruder模块可以通过对http request的数据包以变量的方式自定义参数,然后根据对应的策略进行自动化的重放。常用于自动化猜测/暴力破解过程中。
target选项卡:
设置攻击目标,可以通过proxy发送;
Pasitions选项卡:
指定需要暴力破解的参数并设置成变量,同时选择攻击模式:
Sniper:狙击手
设置一个payload,先将第一个变量使用字典进行测试,然后再将第二个变量使用字典进行测试;
Battering ram:冲锋车
设置一个payload,所有的变量一起用字典内容被替换,然后一起尝试;
Ptichfork:草叉型
每个变量设置一个payload,分别使用对应的字典对变量进行同时替换;
Cluster bomb:焦束炸弹
需要为每一个变量设置一个payload,分别使用字典内容组合对变量进行替换;
Payloads选项卡:
设置字典,并可以对字典进行统一的策略处理;
options选项卡:
对扫描的线程、失败重试等进行配置;
对结果设置匹配的flag:通过一个标识符来区别结果,并在结果栏中flag出来;
·暴力破解之不安全的验证码分析
--on client
--on server
·Token可以防暴力破解吗?
·暴力破解的常见防范措施
我们一般用验证码来做什么?
①登陆暴力破解
②防止机器恶意注册
搞清楚验证码的认证流程
客户端request登陆页面,后台生成验证码:
1、后台使用算法生成图片,并将图片response给客户端
2、同时将算法生成的值全局赋值存到SESSION中;
↓
效验验证码:
①客户端将认证信息和验证码一同提交;
②后台对提交的验证码与SESSION里面的进行比较;
↓
客户端重新刷新页面,再次生成新的验证码:
验证码算法中一般包含随机函数,所以每次刷新都会改变;
不安全耳朵验证码-on client-绕过实验演示
·代码演示
不安全的验证码-on client常见问题
·使用前段js实现验证码(纸老虎);
·将验证码在cookie中泄露,容易被获取;
·将验证码在前端源代码中泄露,容易被获取;
不安全的验证码-on server-实验演示
代码演示和分析
·验证码在后台不过期,导致长期被使用;
·验证码效验不严格,逻辑出现问题;
·验证码设计太过简单和有规律,容易被猜解;
目前简单验证码已经有很成熟的识别技术,基本也等于形同虚设。不然12306的验证码为啥做得那么变态;所以除了设计安全的流程外验证码是否够复杂(而又不影响用户体验)也是在验证码设计中很重要的!
·设计安全的验证码(安全的流程+复杂而又可用的图形);
·对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时
·必要的情况下,使用双因素认证;
聊聊token对防暴力破解的意义
一个简单的token的实例
一般的做法:
1、讲token以“ type= ’hidden‘ ”的形式输出在表单中;
2、在提交的验证的时候一起提交,并在后台对其进行校验;
但,由于其token值输出在了前端源码中,容易被获取,因此也就失去了防暴力破解的意义。一般Token在防止CSRF上会有比较好的功效,具体讲在CSRF漏洞章节进行讲解。