信息安全pikachu靶场 暴力破解模块 hacker

暴力破解漏洞测试流程

1、 确认登录接口的脆弱性

2、 对字典进行优化

技巧:

  1. 对目标站点进行注册,搞清楚站点的账号密码设置的机制

  2. 对系统后台进行爆破,优先使用admin、administrator、root这种概率比较高的账号进行测试,使用这些账号,如果返回密码错误,则可以确定账号。提高效率。

3、 工具自动化操作

基于表单的暴力破解

1、首先判断是否可使用暴力破解:

对登录页面的基本判断,该页面要求输入账号密码,登录失败时,返回账号密码不存在,进行抓包分析,可以发现传入后台进行效验的参数也只有账号,密码,并没有进行次数统计等操作,因此基本可以判断为存在暴力破解漏洞。

2、破解操作

对数据包进行抓取
在这里插入图片描述
将该数据包发送到intruder模块,将admin和password处设置成为变量,attack type选择为Cluster bomb模式,

构造第一个payload,选择simple list,点击load将本地的已有字典导入,第二个payload操作一致,将两个payload都构造好了以后,点击strat attack开始爆破。

攻击结束后,点击length数据包长度进行排序,可以发现存在几个长度明显不同于其他数据包的值,可以知道这几个值进行提交后服务器返回的数据不同,那么很有可能就是密码,这是可以使用登录页面进行测试。可以发现正是可以登录的账号密码。
在这里插入图片描述

验证码绕过——on client

在实战环境中,正常的登录页面都会使用一定的防御机制来预防暴力破解,验证码就是一个很好的方法,因为每一次登录,都需要输入不同的验证码,这时直接使用字典进行破解肯定是不行的,我们先来看一下该关卡的登录页面。

但我们输入账号密码,没有输入验证码时,点击登录,页面显示请输入验证码,这时验证码的检验分为两种情况,第一种是在客户端的效验。第二种时验证码被传入到服务器进行验证,我们判断一下该关卡是那种验证方式。

首先查看一下网站源代码,可以发现存在一个js代码实现了验证码的生成和效验功能,初步判断验证码效验应该属于第一种方法,这时我们抓取一个数据包。

在这里插入图片描述
通过查看数据包,验证码看似被发送给服务器,我们将数据包发送到repeater模块,更改数据包,看一下服务器的返回效果。
在这里插入图片描述
在这里插入图片描述
可以看到及时将验证码设置为空,返回也只有username可password的验证,到这里基本可以确定验证码效验为第一种方法,即是在客户端验证,因此通过抓包即可绕过验证码。
后续爆破操作与第一关一致。

验证码绕过——on server

验证码效验的第二种情况,验证码发送到服务器进行效验,这时进行绕过是比较困难的,但是不乏存在以下几种问题,可以帮助hacker进行绕过:
1、 验证码的刷新时间过长,导致可以长期被使用
2、 验证码效验不合格,逻辑出现问题
3、 验证码的设计太过简单和有规律,容易被猜解

该关卡验证码绕过主要是利用验证码过期时间较长导致。

首先我们判断是否可以绕过验证码,在客户端页面,输入账号密码,不输入验证码,页面提示输入验证码,输入错误验证码,页面提示请输入正确验证码,只有验证码验证正确后,才开始就验证账号密码,逻辑没有问题。

我们抓包进行验证码数据更改试试,首先输入正确数据包,将该数据包发送至repeater模块
在这里插入图片描述
对验证码进行更改,发现还是被效验,这时我们知道验证码必须为正确,才能进行账号密码的效验,但是有没有可能存在验证码短时间内不过期,我们可以多次使用一个验证码的情况了?

这次将数据包中的密码进行更改,验证码不改,看一下返回数据
在这里插入图片描述
在这里插入图片描述
在验证码没有改动,只对password进行改动的情况下,返回是账号或者密码不存在,说明验证码通过了效验,这时就可以对账号和密码进行暴力破解了。
在这里插入图片描述
在这个情况下,成功绕过验证码暴力破解了账号和密码。

那么这个操作是怎么实现的呢?
我们查看一下源代码:

<?php 
session_start();
include_once 'function.php';
//$_SESSION['vcode']=vcode(100,40,30,4);
$_SESSION['vcode']=vcodex();
setcookie('bf[vcode]',$_SESSION['vcode']);
?>

整个页面的验证码效验机制是,验证码生成后,被存储在session域对象中,当用户点击提交按钮后,将提交的验证码与session中的验证码进行比对,看是否一致,这时,如果session中的验证码没有及时更新,或者说存储了验证码vcode的session对象没有及时销毁,那么该对象的存活时间是session的默认最大无活动时间,长达三十分钟,也就是说在三十分钟内该验证码有效,可以重复利用。

正确操作应该及时销毁$_SESSION[‘vcode’]

验证验证码是否正确
if (strtolower($_POST['vcode']) != strtolower($_SESSION['vcode'])) {
    $html .= "<p class='notice'>验证码输入错误哦!</p>";
      //应该在验证完成后,销毁该$_SESSION['vcode']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值