Web安全技术 实验一

一、Pikachu环境搭建

1、XAMPP安装

首先下载XAMPP

然后启动Apache和MySQL

 

 

 

 

 

 正常启动,端口我之前改过了,所以直接下一步;

进入Admin

 

 

 

 

 至此,Xampp就安装完毕啦!

2、pikachu测试平台搭建

 并将其解压在xampp的xampp/htdocs目录下

 

 

 

 

 

然后打开pikachu文件夹里的inc文件夹

 

 

 

 

 

打开config.inc.php文件

 

 

 

 

 将里面对应的内容该成之前刚刚设置好的数据库服务器地址,用户名,密码和端口号

 

 打开浏览器,输入http://127.0.0.1:80/pikachu/

 

 

 

 

 

 

 

 

 

 

 

 这样,pikachu平台就搭建好了。

 

 二、暴力破解

这里需要用到BurpSuite进行抓包,我把代理配置好了之后始终抓不到本地pikachu的包,但是却可以抓到其他的包。

尝试了添加证书并信任,还是无果。

这时找到一个方法:更换本机域名。

进入ipconfig查看本机IP,然后在pikachu的url里将本机IP进行替换,即将127.0.0.1替换为本机的IP。

 

 

 

 

 

 然后再次进行抓包,成功抓到了Pikachu的包。

 

 1.基于表单的暴力破解

随便输入,抓包看看

 

 

 

 

 

 

发送到intruder

选择最后一个

 

 

然后把多余的撞库数据clear掉

 

如图加载写好的字典

 

 

 

同理,选择Payload2。

 

 

 

点击 start attack,开始跑字典

发现三个length不同的username和password,去网页测试一下。

 

 

 

 

 

 

成功登入,破解完成。

 

 2.验证码绕过(on server)

首先随意输入账户、密码,不输入验证码试试。

 

 

 

显示验证码不能为空。

再尝试输入错的账户、密码、验证码试试。

 

 

 

 

 

 

显示验证码输入错误,那我们尝试随意输入账户密码、正确输入验证码试试。

 

 

 

显示账户或者密码不存在。

返回到Burp Suite拦截到POST请求,同之前的方法发送到Repeater模块下。选择随意填写一个验证码或不填,来判断后台是否对验证码进行校验。

 

 

 

通过发回的响应验证码不能为空哦!判断出,后台对验证码进行了校验,我们不能使用之前的方进行破解,但是如果验证码不具备时效性,及同一个正确的验证码可以反复使用的话,我们可以通过不改变验证码的变量进行暴力破解。

为了再判断验验证码的时效性(后台是否会在一段时间内对验证码刷新并重新进行校验),我们填写正确的验证码再随意填写用户名和密码。并多次重复这个步骤。

 

 

 

通过服务器多次发回的响应“username or password is not exists"判断,这个验证码不具备时效性,后台不会在一段时间内刷新验证重新进行校验,同一个验证码同样具有有效性。那么就可以使用之前的方法来进行暴力破解。将POST请求发送到Intruder模块下。点击Clear清除变量,再将账户和密码设置为变量,同时将验证码填为正确的验证码。

 

 

 

 

以上步骤完成后,我们设置好payload,就可以开始攻击了。

 

 

 

发现三个不同length的账号和密码,说明我们成功绕过了验证码,破解成功。

然后回到pikachu进行测试。

 

 

成功。

3.验证码绕过(on client)

 

 

 

首先随意输入用户名、密码、验证码。

Alert了一个验证码输入错误。

 

 

 

 

 

 

输入正确的验证码试试。

 

 

我们抓个包,看一下。

 

 

 

随意修改一下账号和密码,不修改验证码,看看是否会显示验证码错误。

 

 

试了几次发现,显示的始终是username or password is not exists

说明这个验证码不具备时效性,后台不会在一段时间内刷新验证重新进行校验,同一个验证码同样具有有效性;或者验证了验证码只在前端处理,不传回后端,那我们就可以爆破了。

还是一样的步骤,将不要的撞库数据clear掉。

 

 

Start attack

 

 

跑出来有三个length不同的payload,说明成功绕过了验证码。

我们去pikachu测试一下。

 

 

成功。

4.token防爆破?

随便输入账号密码,抓包。

 

 

Send to intruderattack type设置为Pitchfork,将除了密码和token外的装酷数据clear掉。

 

 

options中的grep-extract中打勾点击add添加过滤条件,点击refetch response找到响应包中的token 选中复制token值点击确定。

 

 

 

将最下方的redirections选择为always

 

设置payload set1 typeruntime file  文件选择为密码字典。

 

 

set2 typerecursive grep时 复制刚才的token值到first request

start attack,发现报错。

 

需要在options中将线程设置为1

 

 

重新爆破,发现有一个包长度不同。

 

 

pakachu测试,成功。

 

 

本次实验到此结束啦。

 

 

posted @ 2019-11-15 15:28  万里月光  阅读(583)  评论(0)    收藏  举报