当前位置:   article > 正文

Burp Suite靶场练习——暴力破解(pikache靶场)_burp靶场

burp靶场


前言

在这里插入图片描述
靶场一共有4关,现我们就开始通关吧。

环境

靶场安装机器:Windows10(192.168.1.110)
渗透机器:Windows10(192.168.1.107)

使用工具

Burp Suite Professional抓包工具


第一关、基于表单的暴力破解

在这里插入图片描述

Step.1、抓包

渗透机器登录靶场,开启抓包工具,然后尝试在靶场输入随意的账号:admin、密码123456

在这里插入图片描述
在这里插入图片描述

输入账号密码后,返回burp就看到刚才输入的账号密码

在这里插入图片描述

Step.2、设置爆破条件

  • 由于只涉及到username和password两个变量,我们可以利用BP的Intruder模块,进行暴力破解。
  • Attack type 选择 Cluster bomb
  • 选中两个变量为username和password的值,Add高亮

在这里插入图片描述
在这里插入图片描述

Payload 1 导入username字典,Payload 2 导入password字典

在这里插入图片描述
在这里插入图片描述

Step.3、开始爆破

在这里插入图片描述

Step.4、查看攻击成果

因为验证正确和验证错误的Response长度一般会不一样,所以直接Length排序,可以找到正确的用户名和密码。

  • 如下图,有三个数值是跟其他的长度不一样,这极有可能就是密码

在这里插入图片描述

Step.5、返回靶场尝试登录测试

以上三组账号密码都能登录靶场,第一关通关!


第二关、验证码绕过(on server)

在这里插入图片描述
对比上一关,多了一个验证码

Step.1、思路分析

先尝试随机输入账号:admin,密码:111111,验证码:111111,看一看结果

在这里插入图片描述
然后尝试输入账号:admin,密码:111111,正确的验证码,看一看结果

在这里插入图片描述

这里很明显两者的提示有所不同,验证码正确就会提示“账号或密码错误”,验证码不正确就会提示“验证码输入错误”。

  • 那就有这一种思路,让验证码保持正确的前提下,是不是就能进行第一关那样的暴力破解方法了。但由于每次输入错误,验证码就会刷新,这就要求我们先让验证码保持正确不刷新了。

Step.2、抓包

根据上述思路,那么我们可以思考,我们先输入一次正确的验证码,然后让其一直保持验证码正确的状态来进行暴力爆破。

  • 下面来打开burp抓包,随机输入账号:admin,密码:111111,以及正确的验证码。查看burp抓取到的数据,然后右键将数据发送到Repeater中。

在这里插入图片描述

Step.3、使用Repeater模块进行拦截

进入Repeater模块,点击Send发送数据包,右边就是服务器返回来的数据包
在这里插入图片描述

Step.4、Repeater模块图形界面浏览

然后点击右侧的Render模块查看页面返回的情况,看到用户名或密码错误,说明我们的验证码是正确的。
在这里插入图片描述

Step.5、测试拦截情况

我们将左侧数据包下方的password参数改为admin123,验证码不变,再次点击Send发送数据包,然后再查看返回页面。
在这里插入图片描述

  • 我们发现返回的仍然是用户名或密码错误,这说明我们的验证码还是正确的,但是我们已经改了一次密码,验证码还是之前的,这就说明服务器对验证码的验证有漏洞,可以绕过,这个验证码可以一直使用。

在这里插入图片描述

Step.6、开始爆破

点击右键发送到intruder
在这里插入图片描述
后按照第一关的步骤进行爆破
在这里插入图片描述
获得账号密码,第二关通关!


第三关、验证码绕过(on client)

在这里插入图片描述
这一关看着和上一关模块差不多,就是验证码样式有点不一样。

Step.1、抓包爆破(产生疑问)

啥也不说,先按照第二关的操作,错误、正确的验证码各输入一次,账号:admin,密码:111111。
在这里插入图片描述
在这里插入图片描述

  • 可以看到输错验证码就会弹出一个对话框提示“验证码输入错误”,输对验证码,但账号或密码错误就依旧会弹出提示“username or password is not exists~”

这不立马按照第二关的步骤来。
在这里插入图片描述

  • 这成功获得账号密码。但是,这时候我提出了疑问,既然第三关和第二关的爆破步骤一样,那第三关的设立意义是什么?

Step.2、分析疑问

抱着上面的疑问,我就尝试在验证码错误的时候试一下抓包。哎!竟然没有抓到包,再三确认不是burp的问题后,我明白了,这关的和第二关的差别。

  • 第二关是验证码放在服务器上,无论输入正确还是错误,都得发送数据包到服务器上进行验证,所有都能抓到包。
  • 第三关是验证码放在客户端上,只有输入正确的验证码,才会向服务器发送数据包。假如验证码不正确是不会发送数据包的。

好了,到了这里就可以说一句,第三关通关!


第四关、token防爆破?

在这里插入图片描述
这关的界面和第一关的界面看上去没区别

什么是token?

  • Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。如果这个 Token 在服务端持久化(比如存入数据库),那它就是一个永久的身份令牌。
  • Token 完全由应用管理,所以它可以避开同源策略
  • Token 可以避免 CSRF 攻击
  • Token 可以是无状态的,可以在多个服务间共享

Step.1、测试分析

啥也不说,抓个包看看
在这里插入图片描述
这里多了一个token,这里面有问题啊,再抓多一次包看看
在这里插入图片描述
好了,看到差别了,第2次抓包的token明显和第1次的完全不一样。

这时候就只有分析以下这两次的数据包了,找到两次对应的token数据包
在这里插入图片描述
在这里插入图片描述
这样就能看出来了,第2次数据包发出的token就是第1次数据包从服务器返回来的token。

所以这个逻辑就很清晰了,服务器每次都会发送一个新的token给本地浏览器,用于下一次登录的token验证,如果不一致,说明这个POST是非法的,会被服务器拒绝。

Step2、抓包,将包发送至intruder

在这里插入图片描述

Step3、爆破准备

攻击模式选择Pitchfork,这次是设置2个不同的Payload,所以Add的顺序一定要注意不要搞乱了(之前的也不要)。注意用户名和密码要选在一起。
在这里插入图片描述

设置Payload1,因为第一个变量包含了用户名密码,中间还有一段多余的&password=,所以设置payload1需要切成三块。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

因为整个字段里有=和&,所以要把这个地方的=和&删掉,不然就都过滤了。
在这里插入图片描述

下面这一步是关键, Options里面设置Grep-Extract,点击Add,找到token的位置,刷新一下,把token值选中,然后点OK。下面的Redirections要选Always。另外token的初始值要复制过来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

返回设置Payload2,选择Recursive grep,刚才抓取的代码就自动过来了,把初始值填在下面,打个勾就行了。
在这里插入图片描述

最后Resource Pool要设置成单线程,只能按顺序一条条提交,不然token就乱了,单线操作还是稳的。因为跑了两个虚拟机,还开了一堆东西,服务器响应比较慢,直接开到100ms慢慢跑。
在这里插入图片描述

Step4、爆破

点击Start attack开始爆破
在这里插入图片描述
好了,获取到账号密码了,第四关通关!


总结

BurpSuite爆破的几种模式

攻击模式Payloads攻击效果
Sniper1一个参数不变,另一个遍历字典
Battering ram1两个参数同步遍历一个字典
PitchforkN(取决于参数有几个)两个参数同步遍历两个不同的字典
Cluster bombN(取决于参数有几个)两个字典的笛卡尔积

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/712855
推荐阅读
相关标签
  

闽ICP备14008679号