pikachu靶场暴力破解专题

 一、前言

        pikachu是我作为初探渗透的平台,所以我会在每个专题前增加更多的基础知识,一是方便自己巩固基础,二是帮助一些也打算入门渗透的小白更好的理解。

二、暴力破解

        pikachu靶场里给出的暴力破解的定义如下:

        我们需要的工具就是喜闻乐见的Burp Suite也就是大家口中的bp。

1.基于表单的暴力破解

       打开后就是这样一个输入用户名和密码的界面。很明显是要我们自行破解出用户名和密码进行登录操作。         首先我们打开bp,进行抓包。(BurpSuite安装和基础使用教程(已破解)_)   

        我们在账号密码处随意填写数据并登录,然后查看bp的抓取情况。抓取成功后呢我们的页面如下,点击Action然后send to Intruder准备进行爆破。

        进入Intruder界面,我们对我们要进行破解的数据段进行标记(所有的攻击都是针对于标记内容的)并且选择相应的Attack type(攻击类型)(burp suite的四种 attack type(攻击类型)

         我们要破解username和password,就应当选取Cluster bomb的攻击方式,在payloads中上传我们的字典,首先在payload set 1中上传username的字典,再选取payload set 2上传password的字典。考虑到用户名和密码有特殊符号的情况,这里把URL-encode去除勾选。

         然后点击start attack开始爆破,最后根据爆破的长度结果,筛选出正确的用户名和密码。(爆破的原理就是将字典中的数据一次次的进行不同的组合发送响应,根据返回的报文长度来判断结果是否正确,正确的返回报文和错误的返回报文是不同的。)

         成功登录

 2.验证码绕过(on server)

         首先我们对各种情况的返回进行观察,当我们输入错误的账号密码和错误的验证码时,它提示我们验证码输入错错误了。输入错误的账号密码,但是正确的验证码时, 它又提示我们用户名和密码不存在,并且每次提交登录请求后验证码都会刷新。

        那有没有一种可能,如果我不刷新网页或者提交请求,验证码就会一直有效,我也就可以通过上一关的步骤来进行爆破。 

         我们来验证一下,我们将随便一个包send to repeater,将验证码改完现在页面中显示的值,send,在response中查找一下username or password, 有这段数据,证明现在这个二维码是正确的。

        我们不改动现在的验证码,再把密码改一下,再次send,发现返回的还是username or password is not existed,说明验证码还是对的。 

         这就说明我们的猜想是正确的,只要页面不刷新,我们不提交请求,验证码就可以在bp中多次使用,那我们直接在repeater中把现在的请求包send to intruder,重复上一关的步骤,果然还是这个用户名和密码。

加点思考(养成探究为什么的习惯哦)

        我们查看一下源代码我们可以看到在代码判断验证码是否正确后,并没有销毁之前的验证码,这就让我们钻了空子,  并且我们在页面F12就可以在cookie中看到所有输入过的验证码,这说明在生成验证码的时候,制作者还多此一举的把验证码作为cookie的一部分发送给了客户端,那就算在判断阶段有销毁步骤,攻击者也可以通过document.cookie获取到验证码从而实现爆破。

3.验证码绕过(on client) 

        老规矩,我们先观察。

        我们输入正确的验证码,错误的用户名和密码。提示的是用户名和密码不存在

         我们再输入错误的验证码和错误的用户名和密码。这次是弹窗显示验证码错误,错误的用户名和密码也没有像之前一样清除。

         F12检查网页源代码,我们可以找到前端校验验证码的js脚本

        既然是前端检测,那我们只需要用bp发送请求报文绕过前端就行了,依旧是重复第一步的步骤。(这里就不赘述了)捎带一提,任何前端的校验对于防止安全攻击都是靠不住的!

4.token防爆破? 

        先观察,这一关没有了验证码,输入错误的用户名和密码还是会提示不存在。

        既然和token相关那我们就用不一样的值登陆两次看看抓到的报文有什么不同,可以发现确实两次的token不同。

         我们把报文send to response,把报文删掉,send,发现什么返回结果都没有

         但是我们发现源代码中有type为hidden,name是token的input标签。我们试试看把token的值改为response中的值,send,发现返回了用户名和密码不正确,并且返回了下一次的token。这也就说明了request中的token是从上一个response中提取的。

         对于这种情况,我们的暴力破解要有所调整:首先我们要再多标记一个token,将Attack type改为Pitchfork。第一第二个还是像之前一样上传payload,然后第三个的设置如下,先在Intruder界面的options找到Gerp-Extract,点击add,点击refresh response,选取token后面的字段即可。

 

 

  • 11
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值