★暴力破解漏洞(Burte Force)

暴力破解漏洞(Burte Force)
借助足够的字典+Burp等工具repeat操作即可
什么是暴力破解:连续性尝试+字典+自动化
字典
1.弱口令字典
2.Github搜集
3.只用指定字符生成(社工)
4.社工库
防范:
1.要求用户设置复杂的密码
2.每次认证使用安全的验证码
3.对登录的行为做出判断和限制限制你的IP
4.在必要的情况下使用双因素认证;
技巧一:
根据注册提示信息优化,在目标站点注册,搞清楚账号密码限制,比如大小写、密码长度限制。 技巧二:如果是爆破后台,通常账户是admin/root/administrator
验证码: 后台用算法生成图片,并将图片回答给客户端 同时将算法生成的值全局赋值到SESSION中 然后客户端将认证信息同验证码一同提交 后台对提交的验证码与SESSION里面的进行比较 客户端重新刷新页面,再次生成新的验证码,验证码算法中一般包含随机函数,每次刷新都会改变
验证码-On-Client:
1.使用前端J实现验证码(纸老虎)
2.将验证码在cookie中泄露,容易获取
3.将验证码在前端源码中泄露,容易获取
验证码-On-Server
1.验证码没有做过期处理,算法生成验证码,一个验证码可以长期使用(只要不刷新),则仍然可以burpsuite抓包爆破
2.验证码校验不严格,只验证账户密码
3.验证码存在规律会被猜解
burp爆破模式:
第一个用于单个爆破  Sniper单向爆破   用途:你知道用户名不知道密码,破解一些单一输入框
第四个用于做双爆破 即账号密码同时爆破 但是要按顺序选中  这样就会进行账号密码一对多进行组合爆破 排列组合
第三个也是爆破双个 但是他是随机一对一的 也就是账号和密码的字典不组合 按照字典的顺序对应着穷举 看上去就相当于随机一对一 毕竟字典是随机的顺序
Sniper单向爆破   用途:你知道用户名不知道密码,破解一些单一输入框 一个payload
battering ram模式: 并发攻击,对 多个目标进行单一的 payload攻击   也就是用户名和密码一样的情况(工号,学号),两个payload
pitchform模式: 交叉攻击(撞库攻击)  有几个变量就可以选择几个字典,两个字典 逐一对应 进行爆破 可以理解成所谓的随机撞库 因为字典是随机的嘛
cluster bomb模式: 穷举模式   完整的爆破  一对多 依次进行 排列组合进行穷举
例题学习: pikachu靶场学习暴力破解漏洞
1.基于表单的暴力破解
(特点:本身并没有验证码) (核心:字典+repeater即可)
php.ini--->session_cookie_lifetime=0
session和cookie的生命时长  修改时间更长一些
2.客户端(on client)验证码的绕过
(客户端绕过表明这是前端进行的校验,这是不可靠的)
原理:点击验证码图片就会刷新验证码 但是并没有包,说明验证码是纯客户端验证码。而burp抓的是服务端的包
这个刷新是在客户端进行的。可以查看源代码,js定义了验证码刷新规则
输入验证码错误的时候,burp抓不到包。说明这是前端的限制,此时包根本没有发出去
所以只要 输入正确的验证码,然后用burp抓到包,先放到repeater中,再放到intruder中进行爆破即可,验证码的限制已经被绕过了。爆破即可
客户端的验证码没用,burp抓的不是客户端的包,是在服务端走的。此时 即使把验证码删除掉都没有影响
方法2:禁用JS也可以 因为验证码验证是在前端进行的
方法3:html源码编码 把验证码验证的源码做出一点修改也可以 或者直接删掉
3.服务端(on server)验证码的绕过
漏洞特点:发现在点击图片的时候用burp抓包,包中可以看到相应正确的验证码,所以并不需要人工去识别和输入相应的验证码
如果验证码数据包,没有出现token,那就可以大胆一点,直接卡着第一个包让服务器端不刷新验证码,然后直接去进行重放爆破即可
特点:
验证码的校验是在服务器端进行的;
点图片刷新验证码可以抓到包,说明验证码是服务器端发过来的
(理解): 
(1)放到repeater中 第一次先抓到的那个包放包后,验证码是可以成功校验的 但是重复放包的这里就会显示验证码错误,因为验证码已经变了,服务端校验失败      
(2)但是如果第一次抓包后直接放到repeater中,这个包不放掉。然后在repeater中就可以进行无限的重放操作,也就绕过了验证码。此时就可以爆破了!
但是,验证码并不能删除掉,服务器仍然会校验验证码
原理理解:由于第一个包一直抓着没放,所以服务器的原始验证码始终没有被刷新,所以不断重放的过程中需求的验证码没变,所以可以爆破
一旦把第一个包放掉,此时验证码也就刷新了,则重放的验证码就变了,就没办法爆破了
底层原理:验证码刷新方式 1.点击图片 向服务器发包请求刷新  2.刷新界面   (都是客户端的操作才会导致验证码刷新)
而burp重放是在客户端之上进行的,并没有操作能够除法验证码改变的条件,所以不需要修改验证码,从而可以爆破
标准:只要客户端那个验证码没有刷新变化,就可以进行验证码的绕过,就可以进行爆破
如果不小心把包放掉了,如何进行补救?
方法1:可以重新进行抓包,并且卡着包不放就可以了。
方法2:就在重放那个模块,把当前页面新的验证码改上去就可以了继续重放然后继续爆破了。原理仍然是因为客户端上的验证码没有触发刷新机制
4.token防爆破(尽可能的在账号已知的情况下去尝试 毕竟pitchform模式同时爆破账号密码成功率很低)
token逻辑:
token是由后端生成的内容,会发送到前端,然后前端数据带着token发回后端,验证token无误才会处理数据。处理完成会生成一个新的token发回前端用于下次传数据
token特性:
前端每次提交都要带上token,可以防止重复提交,也可以防止CSRF攻击,还可以多个服务共享,一定程序上可以阻止暴力破解
CSRF攻击,跨站请求伪造攻击:
http://alipay.com/zhuanzhang.php?from=xiaoming&to=xxx&token=xxxx&money=xxxx
步骤:
burp抓包 发现包中的内容
username=xxx&password=xxxx&token=xxxxx&submit=Login
攻击方式选择 pitchform模式
Options中第一个和第二个分别载入字典
第三个token  设置生成一个正则表达式
Payloads模块中token用正则表达式设置相应的payloads
验证码的人工绕过方式:
1.使用打码平台 (借助大家的力量去识别二维码 黑客负责扫 大学生负责写 赚差价)
2.人工智能(机器学习,深度学习,神经网络)(用智商的方法解决 用人工智能去识别验证码)
拓展用法:401页面的爆破(PTE高频考点)
平常的页面是200页面 这种是401页面
burp抓包: 401页面是get型请求方法 而且没有账号密码 身份校验的位置不同
身份校验的位置是Authorization   basic后面可能是base64编码方式
说明这是一个base64编码的包  解码后为 admin:123  账号:密码 的形式
直接抓包放到intruder  传统的加载字典爆破方式不适用了 修改设定很麻烦
1.将basic后面的编码内容加载到爆破部分
2.设定payload种类 选择custom iterator 自定义密码组成
密码可以拆成两个部分 假设账号知道是admin的前提下,第一部分可以写成admin:  第二部分就可以添加密码的那个字典
下一步设置payload processing 整体进行编码操作  选择base64编码即可
切记设置一下payload encoding 把url编码消除掉 因为burp会默认对特殊字符进行url编码
之后比对statics状态码即可  503是进程太快 靶场接受不了的意思 可以减缓进程
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon_Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值