pikachu漏洞练习平台之暴力破解

中国人民公安大学

Chinese people public security university

 

网络对抗技术

实验报告

 

实验五

pikachu漏洞练习平台之暴力破解

 

 

 

学生姓名

 

年级

 

区队

 

指导教师

 

 

用到的工具是phpStudy和burpsuite,在pikachu平台下进行实验。

首先需要设置好浏览器的代理,打开phpStudy和burpsuite。

一、基于表单的暴力破解:

burpsuit的配置:先配置代理,设为本地:

打开burpsuit:

 

 

 在Proxy中的Option选项中将端口和IP配置为本地

这样,burpsuit便成为了主机的代理,所有发往因特网的请求包将经过burpsuit

 

在pikachu平台点开暴力破解,先进行抓包

 

 

在burpsuit中,打开Intercept选项,将其关闭

 

 

 

 

输入账号密码

 

 

 

 

 

在burpsuit中,打开Intercept选项,将其打开

 

 在pikachu平台点击登录

回到burpsuit,发现抓到数据包:

 

 

Tips:如果burpsuit在正确设置代理后,仍无法抓到数据包,在登录pikachu时,将域名前的ip改为当前网络真实IP,这样便可以抓到数据包了。其原因是数据包默认不经过本地代理。

右键将其发送到intruder

点击clear,再选择需要破解的用户名和密码

在攻击种类中选择常用的Cluster bomb。

设置好动态变量,并设置Payload以及字典

 

 

 

 

 

 

 

将字符串username or password is not exists复制到burpsuite的Grep-Match

 

 

设置好后点击开始攻击:

 

 

 看到用时最短的·用户名和密码

尝试登录:

 

如果无法通过字符串来判断是否正确,可以看一下响应包的长度。

 

二、On client

随便输入一个用户名和密码并且输入正确的验证码

 

 

 

 

 

抓到的数据包

 

 

 

通过查看源代码可以发现验证码的逻辑是在js中完成的。

 

 

 

 

 

可以看到使用方法validate来验证验证码,使用createCode来生成验证码,通过单击即可改变验证码

 

这样也就知道了验证码的生成以及验证都是在浏览器的前段来完成的,这样很不安全,很容易就可以将其绕过。

将数据包发送到Repeater模块。

 

 

第一次没有输入验证码,返回结果为username or password is not exists

 

 

 

第二次输入一个错误验证码显示结果还是username or password is not exists

 

 

 

 

这样就可以确定验证码提交后台后并没有进行验证,而是直接在前段进行了验证。

下面进行一下暴力破解

 

 

 

 

 

 

 

 

 

中间步骤就省略了。

爆破结果如下:

 

 

 

可以看到响应中提示login success。这也就说明了这种前段js的验证码起不到什么真实的作用。

三、On server

随便输入一个用户名和密码并且输入正确的验证码,显示了字符串username or password is not exists

 

 

先提交空验证码:

 

 

 

提交错误验证码

 

 

 

 

说明后端做了验证。

下面验证验证码是否刷新

首先从新获取一个验证码,并记下来,在后台提交,

 

 

 

显示为username or password is not exists 说明后台对验证码进行了验证

 

为了验证这个验证码是否可以进行重复利用,修改用户名和密码在提交一次

 

 

 

这就说明这两次用的同一个验证码都成功了。

这样的话就可以进行暴力破解了,

这里要输入这个正确的验证码。

 

 

 

 

 

 

 

 

 

爆破结果如下:

 

 

可以看到验证码验证成功了,并且成功的找到了正确的用户名和密码。

四 、token防爆破

打开pikachu网站选择token防爆破随便输入用户名密码点击登录,在burp suite抓取请求包如下:

 

 发送至intruder

点击intruder模块中positions选择攻击类型为Pitchfork,设置password与token为变量。

选择options,Grep-Extract 打勾点击add。

 

 

点击refetch response 找到响应包中的token的值选择点击确定。然后在Redirections中选择always。

 

 

点击payls set 1 type类型选择runtime file加载密码字典,set 2 type选择recursive grep 复制刚才的token值粘贴至first request:

 

 

 

 

 

点击start  attack进行破解。

 

 

查看长度,短者即为正确用户名和密码

 

 

 

 

posted @ 2019-11-18 09:07  challenger1  阅读(942)  评论(0)    收藏  举报