您的位置:首页 > 其它

Pikachu实验过程重现

2019-03-24 21:30 58 查看

暴力破解漏洞的解析
一.暴力破解漏洞的原理
1.概念如果一个网站没有对登录接口实施防暴力破解措施,或者实施了不合理的措施,则该网站被称为存在暴力破解漏洞。
(1).是否要求用户设置复杂的密码;
(2).是否每次认证都要求使用安全的验证码;
(3).是否对尝试登录行为进行判断和限制;
(4).是否在必要的情况下采用双因素认证;
2…连续性尝试+字典+自动化
字典(自己要在网上查找资源并且在学习过程中收集属于自己的字典)字典可以提高暴力破解的效率

(1).常用的账号密码(弱口令),比如常用用户名和密码,在网上收集
(2).互联网被脱裤后账号密码(杜工库),比如之前 CSDN泄露的600W用户信息
(3)使用指定的字符使用工具按指定的规则进行排列组合算法生成密码
二.暴力破解漏洞的测试流程
1.确认登录接口的脆弱性
确认目标是否存在暴力破解漏洞,例如尝试登录-抓包-观察验证元素和response信息,判断是否存在被暴力破解的可能性
2.对字典进行优化
根据实际情况对字典进行优化,提高破解过程的效率
字典优化的技巧:
(1).根据注册提示信息进行优化,对目标站点进行注册,搞清楚账号密的一些限制,比如目标站点要求密码必须是6位以上,字母数字组合,则可以按照此优化优化字典,比如去掉不符合要求的密码;
(2).如果爆破的是管理后台,往往这种系统的管路员是admin/administrator/root的几率比较高,可以使用着三个账号+随便一个密码,观察返回的结果,确定用户名(例如:输入admin/yyy返回密码错误,则基本可以确定用户名是admin.因此只对密码爆破即可;例如:输入xxx/yyy,返回用户名和密码错误);
3.工具自动化操作
配置自动化工具(线程,超时时间,重试次数),进行自动化操作;
三.基于表单的暴力破解(基于burp suite)
模块介绍:
(1).Target模块:设置攻击目标,可以通过proxy发送;

(2).Intruder模块:可以通过对http request的数据包以变量的方式自定义参数,然后根据对应策略进行自动化重放,常用语自动化猜测、暴力破解过程中;

(3).Pasitions模块:指定需要暴力破解的参数并设置成变量,同时选择攻击模式;可以在这个上面依次尝试,将自己的字典存入里面
Sniper选项卡:狙击手;设置一个payload,先将第一个变量进行字典测试,然后将第二个变量进行字典测试;

Battering ram选项卡:冲撞车;设置一个payload,所有变量一起用字典内容替换,然后一起尝试;
在这里插入图片描述


Ptichfork选项卡:草叉型;每个变量设置一个payload,分别使用对应的字典对变量进行同时替换;
Cluster bomb选项卡:焦束炸弹;需要为每一个变量设置一个payload,分别使用字典内容组合对变量进行替换;
四.暴力破解安全验证码分析
1…暴力破解之不安全验证码分析~on client ~on server
验证码的作用:登录暴力破解和防止机器恶意注册
验证码的认证流程
(1).客户端request登录页面,后台生成验证码:
后台使用算法生成图片,并将图片request给客户端;
同时将算法生成的值全局赋值存到SESSION中;
(2).校验验证码:
客户端将认证信息和验证码一同提交;
后台对提交的验证码与SESSION里面的进行比较;
(3).客户端重新刷新页面,再次生成新的验证码
验证码算法中一般包含随机函数,所以每次刷新都会改变;
2.不安全验证码的绕过~on client 绕过演示和代码演示:

(1).使用前端js实现验证码(纸老虎);可以自己查看网页源代码

所有验证码的生成都是由Iavascript在前端执行操作

可以自己修改验证码进行不同的尝试
(2).将验证码在cookie中泄漏,容易被获取;
(3).将验证码在前端代码中泄漏,容易被获取;
五.暴力破解常见的防范措施
1.设计安全的验证码(安全流程+复杂而又可用的图形);
2.对认证错误的提交进行次数统计并给出限制,比如连续5次密码错误,锁定5小时等;
3.必要的情况下,使用双因素认证;
4.一个简单的token实例:
一般做法
(1).将token以“type”="hidden"的形式输出在表单中;
(2).在提交的认证的时候一起提交,并在后台对其校验;
但由于其token值输出在了前端源码中,容易被获取,因此失去了防暴力破解的意义,一般在token在防止CSRE上会有好的功效。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: