Pikachu靶场:基于表单的暴力破解
实验环境以及工具
Firefox浏览器、Burp Suite、Pikachu靶场
实验原理
账号密码的强度取决于密码长度、复杂性、不可预测性。所有的密码都可以通过穷举的方法来进行破解,所以强度本身也可以用被破解的时长来衡量。使用如Burp Suite等工具可以根据密码字典来对密码进行暴力破解,字典的强度来决定破解的可行度和效率。
实验步骤
1.前期工作
先将Proxy中的intercept关闭,使其不进行拦截,让数据通过监听的端口。

先找到正确口令与错误口令页面返回结果的区别。
先输入正确口令

返回一个login success

这里我再账号密码均输入qqq

返回一个username or password is not exists~(后面会用到)

在Burp Suite里查看Proxy中HTTP history,可以看到一个POST,在Request中可以看到输入的username和password。在Response中可以看到username or password is not exists~


然后将文件发送到Intruder

2.使用Intruder进行破解
Intruder主要介绍如下图

2.1 Sniper(单字典,单position替换尝试)
使用Clear删除多余的变量,只留下账号和密码

切换到Payloads,进行字典的设置,可以使用Simple list手动在下面添加,也可以使用Runtime file添加字典,这里使用Runtime file。

字典文件如下图(其中admin/123456是正确的的口令)


设置好了如下图,然后点击Start attack开始攻击
![转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eC0akVl3-1617521685006)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210404144124911.png)]](https://i-blog.csdnimg.cn/blog_migrate/bbf331aa4e9dc4416b2510ae730c1154.png)
查看攻击结果
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EFBAUk7N-1617521685007)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210404144337616.png)]](https://i-blog.csdnimg.cn/blog_migrate/dc397e15a7a3a206c6ffc2f16842f0f7.png)

Sniper模块进行了一个字典内所有秘钥的单position替换尝试,很显然没有找到用户名为admin,密码为123456的口令。
2.2 Battering ram(单字典,多个Position同个秘钥尝试)
将攻击模块切换为Battering ram

切换到Payloads,发现还是只能选一个Payload set,即一个字典,那么接着用之前的字典。

查看结果

发现username和password是同样的值,显然没有找到用户名为admin,密码为123456的口令。
2.3 Pitchfork(多个字典,同序号进行替换)
将模块切换为Pitchfork

这时候发现Payload set能够加入多个字典,这里只有两个变量,所以只能加入两个字典。


查看结果,并且与字典进行对比


发现Pitchfork将字典中的秘钥根据序列号进行了一一对应,即字典1的序列为1的秘钥无法对应字典2序列为非1的秘钥。显然没有找到用户名为admin,密码为123456的口令。
2.4 Cluster bomb(多字典,多行对应多行的尝试)
切换为Cluster bomb模块

字典依旧使用之前的两个字典,然后单击Start attack开始攻击


然后单击length可以看到一个长度比较小的,因为密码错误(username or password is not exists~)和密码正确(login success)所弹出的字符串长度不一样,所以可以根据返回页面的长度来判断是否成功。

查看Response里的内容
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5SGMvWf8-1617521685014)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210404152244666.png)]](https://i-blog.csdnimg.cn/blog_migrate/4859c753e154a3909a9181394c4e1a54.png)
下面尝试用另一种方法来判断是否成功。
在Intruder的Option中找到Grep-Match
清除多余的字符串,添加 username or password is not exists 这个字符串,这样会将所有返回 username or password is not exists 的页面进行标记,即打上flag。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pzr3BD3J-1617521685015)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210404152606915.png)]](https://i-blog.csdnimg.cn/blog_migrate/dea17d73249eec72077e4c340ac4f65a.png)
Start attack开始攻击,然后点击新加上的行(username or password is not exists)进行排序,可以看到破解成功的口令。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jW4fUJms-1617521685015)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210404153030580.png)]](https://i-blog.csdnimg.cn/blog_migrate/5c8a0576d7ec4bc242a6ee99566200d5.png)
总结
将Proxy的Intercept拦截关闭后,通过手动访问目标网页,然后提交表单后,在Proxy的HTTP history中找到最新的POST请求,将其发送到Intruder中进行破解。在使用Intruder破解时,要根据实际情况来选择模块和标记。好的字典能够提高破解的效率。
本文详细讲述了如何利用Firefox和BurpSuite工具在Pikachu靶场环境中进行基于表单的暴力破解实验,通过Sniper、Batteringram、Pitchfork和Clusterbomb模块逐步测试不同字典策略,揭示了账号密码强度与破解效率的关系。
1786





