PIKACHU之暴力破解

一、暴力破解

1、概述

连续性尝试+字典+自动化

一个有效的密码,可以大大的提高暴力破解的效率

如果一个网站没有对登录接口实施防暴力破解的措施,或者实施了不合理的措施,则称该网站存在暴力破解漏洞

措施:是否要求用户设置了复杂的密码,是否每次认证都使用安全的密码,是否对尝试登录的行为进行判断和验证,双因素认证等

2、暴力破解测试流程

  1)确认登录接口的脆弱性

确认目标是否存在暴力破解的漏洞(确认被暴力破解的可能性)

比如:尝试登录—抓包—观察验证元素和response信息,判断是否存在被暴力破解的可能

  2)对字典进行优化

  3)工具自动化操作:配置自动化工具(比如线程,超时时间,重试次数等)

字典优化技巧:

  1. 根据注册提示信息进行优化
  2. 如果爆破的是管理后台,往往这种系统的管理员是admin/administrator/root的几率比较高,可以使用这三个账号+随便一个密码,尝试登录,观看返回的结果,确定用户名

二、暴力破解实验演示以及burpsuite介绍

1、burpsuite

browser---proxy---web-site

intruder模块可以通过对http request的数据包以变量的方式自定义参数,然后根据对应策略进行自动化的重放,常用于自动化猜测/暴力破解过程中

target选项卡:设置攻击目标,可以通过proxy发送

pasitions选项卡:指定需要暴力破解的参数并设置为变量,同时选择攻击模式:

sniper:狙击手

设置一个payload,先将第一个变量使用字典进行测试,然后再将第二个变量使用字典进行测试

Battering ram:冲撞车

设置一个payload,所有的变量一起用字典内容替换,然后一起尝试

Pitchfork:草叉型

每个变量设置一个payload,分别使用对应的字典对变量进行同时替换

Cluster bomb:焦束炸弹

需要为每个变量设置一个payload,分别使用字典内容组合对变量进行替换

Payload选项卡:

设置字典,并可以对字典进行统一的策略处理

Options选项卡:

对扫描的线程、失败重试等进行配置

对结果设置匹配的flag:通过一个标识符来区别结果,并在结果栏中flag出来

注:get请求和post请求区别:

Get一般用来获取服务器的信息,post一般用来更新信息

Get请求也可以传参到后台,但是传递的参数显示在地址栏中,安全性低,且参数的长度也有限制,post请求是将传递的参数放在request body中,不会在地址栏中显示安全性比get请求高

Get请求刷新浏览器或者回退没有影响,可以被缓存,也会保留在浏览器的历史记录中,通过url地址请求,产生一个tcp数据包,get请求会被浏览器主动cache

post请求则会重新请求一遍,不会被缓存,常见的是form表单请求,产生两个数据包,而post不会,需要手动设置

三、暴力破解的绕过与防范

一般用验证码来做什么:

登录暴力破解、防止机器恶意注册

验证码的认证流程:

1、客户端request登录页面,后台生成验证码

后台使用算法生成图片,并将图片response给客户端;

同时将算法生成的值全局赋值存到session中

2、校验验证码

客户端将认证消息喝验证码一同提交

后台对提交的验证码与session里面的进行比较

3、客户端重新刷新页面,再次生成新的验证码

验证码算法一般包含随机函数,所以每次刷新都会改变

验证码可以防止暴力破解,但是你的验证码安全吗?

不安全的验证码-on click(客户端)绕过实验演示

代码演示

前端的验证码只在前端进行了验证,并没有传入后端进行验证

不安全的验证码-on client常见问题

使用前端js实现验证码(纸老虎)

将验证码在cookie中泄露,容易被获取

将验证码在前端源代码中泄露,容易被获取

四、不安全的验证码-on server-实验演示、代码演示和分析

不安全的验证码-on server常见问题

验证码在后台不过期,导致可以长期被使用

验证码校验不合格,逻辑出现问题

验证码设计的太过简单和有规律,容易被猜解

首先通过分析,发现虽然有验证码,并且也会在后台进行验证码错误和非空的判断,但是验证码一直有效,不会过期,可以重复利用

暴力破解成功:

为空报错和验证码错误报错正常:

 五、暴力破解防范措施和防范误区

措施总结:

  1. 设计安全的验证码(安全的流程+复杂而又可用的图形)
  2. 对认证错误的提示进行计数并给出限制,比如连续五次密码错误,锁定2小时
  3. 必要的情况下,使用双因素认证
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值