pikachu之暴力破解 – 作者:可乐kele

暴力破解

Sniper

1615268136_60470928546a138fb9c16.png!small

只可选取一个payload

1615268179_604709531d044aa090607.png!small

由下图可以看到,在Sniper当第一个kele进行破解时,是在username的位置,当payload全部用完时,其就会移动到password的位置

1615268199_6047096774a39f2b7a50d.png!small1615268211_60470973ed481e5de3433.png!small

Battering ram

1615268227_604709833151e1ef87105.png!small

如下图,此模式可将username和password设置为相同的payload

1615268239_6047098f61ca3431350eb.png!small

Pitchfork

1615268257_604709a1a83c7d4d742e1.png!small

如下图,此模式可以设置两个payload

1615268268_604709ac6a577c134d08d.png!small1615268272_604709b08d5dc492e6bba.png!small1615268277_604709b572b0ef8bd2d8f.png!small

如下图,此模式下,两个payload将一一对应匹配

1615268290_604709c28c43bbc0e9931.png!small

Clusterbomb

1615268304_604709d0ca20e8435fbf9.png!small

此模式一样可以设置两个payload,唯一区别在于,其两个payload会逐一进行匹配,所以此方法会在一般的暴力破解常用

1615268315_604709db5e98d10e261e9.png!small

基于表单的破解

此为最容易进行的暴力破解,在此处如果没有登录限制,则可无限制暴力破解(账号密码都可)

1615268335_604709ef549024e7306a9.png!small

当输入错误的账号时,会提示账号或密码错误,如若存在用户枚举,则可只进行密码的暴力破解

1615268346_604709fadd50eaef9aa9d.png!small

进行抓包处理,并且将抓到的包放入Intruder

1615268359_60470a07583ad3e1002ed.png!small

根据返回的爆破结果,我们在看到其长度的不同,即可区分出结果

1615268370_60470a12a270c49cdc65d.png!small

1615268375_60470a1705a7ff52dc9b8.png!small

基于服务器的验证码爆破

1615268385_60470a21a5f1a6b5cd198.png!small

验证码在服务器中验证常见的问题

  1. 验证码在服务器中不过期,长时间有效,可以长期使用
  2. 验证码校验不合格,逻辑出现问题
  3. 验证码的设计规律过于简单,容易被猜解

我们可以采取抓包的方法来验证验证码是否可以长期使用,抓包发生至Repeater

1615268399_60470a2fadb526dd2621d.png!small

在上图的基础上将验证码设置为空,显示结果为

1615268409_60470a39c72f53b9133b0.png!small

如随便输入验证码,结果为

1615268423_60470a470c222df5bec7c.png!small

将正确的验证码输入,结果为

1615268432_60470a5049e6acf066db4.png!small

修改账号密码,不修改验证码,结果为

1615268441_60470a59f0dc50a9a25ec.png!small

因此可以判断,其验证码可以长期使用,下面进行暴力破解即可

同时可以看到服务端将验证码字符串以明文COOKIE的方式给了前端

1615268452_60470a643d65fccaf5c72.png!small

防范措施:可以在验证码后面添加使其每次使用完毕失效即可

基于客户端的爆破

  1. 使用签到js实现验证码(无效验证码)
  2. 将验证码在cookie中泄露,容易被获取
  3. 将验证码在前端源代码泄露,容易被获取1615268475_60470a7bdabbdee16db30.png!small

    查看此页面的源代码发现验证码是在前端使用js生成的

    1615268491_60470a8b033c3fd4ab65c.png!small并且是在前端直接调用1615268524_60470aacbb23818c26160.png!small

    因此可推断,验证码在前端js生成,并没有验证作用

    在抓包将其发送至Repeater,将验证码修改为一个不存在的,发现并没有去验证,而是返回了一个用户名或密码错误的提示,下面进行暴力破解即可。

    1615268537_60470ab97b8003a2c268d.png!small

    暴力破解的防御措施:

    1. 设计安全的验证码(可以图形化)
    2. 并认证错误的提交给出计数并进行限制
    3. 使用双因素认证

      注意:Token并不能阻止暴力破解,因为token每次会变,但是可以利用工具去提前获取token的值,进行更改,所以不能彻底的防止暴力破解

      1615268568_60470ad88363825fa09ff.png!small

来源:freebuf.com 2021-03-09 13:46:18 by: 可乐kele

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论