pikachu—暴力破解

实验环境

DVWA靶机:172.16.12.10

windos攻击机:172.16.12.7

kali攻击机:172.16.12.30

实验步骤

一、基于表单的暴力破解

打开BP抓包,随便输入用户名密码,点login

选择测试器——位置,进行如下设置

点有效载荷,选择爆破用户名的字典

再选择爆破密码的字典,点开始攻击

点长度,这三个疑似用户名密码,逐一尝试,用户名:pikachu 密码:000000是正确的

二、验证码绕过(on server)

随便输入提交,发现验证码会刷新

打开BP抓包,连续抓了多次发现验证码不会刷新了

接下来就简单了,同样开始爆破就ok

选择用户名字典

选择密码字典,点开始攻击

成功爆破

$html="";
if(isset($_POST['submit'])) {
$html .= "<p class='notice'>用户名不能为空</p>";
} else {
if (empty($_POST['password'])) {
$html .= "<p class='notice'>密码不能为空</p>";
} else {
if (empty($_POST['vcode'])) {
$html .= "<p class='notice'>验证码不能为空
哦!</p>";
} else {
//验证验证码是否正确
if (strtolower($_POST['vcode']) !=
strtolower($_SESSION['vcode'])) {
$html .= "<p class='notice'>验证码输入
错误哦!</p>";
//应该在验证完成后,销毁该
$_SESSION['vcode']
}else{
$username = $_POST['username'];
$password = $_POST['password'];
$vcode = $_POST['vcode'];
$sql = "select * from users where
username=? and password=md5(?)";
$line_pre = $link->prepare($sql);
$line_pre-
>bind_param('ss',$username,$password);
if($line_pre->execute()){
$line_pre->store_result();
//虽然前面做了为空判断,但最后,却没有验
证验证码!!!
if($line_pre->num_rows()==1){
$html.='<p> login
success</p>';
}else{
$html.= '<p> username or
password is not exists~</p>';

源码中写的很清楚了,比较完验证码后,没有重置验证码,又由于我这里是使用的burpsuite,没有让我重新去请求验证码,所以此验证码是一直有效的

三、验证码绕过(on client)

随便输入,提示如下

BP拦截,发现拦截不到验证码,这个验证码是在前端验证的,难怪叫做onclient,于是在源码中找到了对应的JS

1、源码分析

var code; //在全局定义验证码
function createCode() {
code = "";
var codeLength = 5;//验证码的长度
var checkCode =
document.getElementById("checkCode");
var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7,
8,
9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候
选组成验证码的字符,当然也可以用中文的
for (var i = 0; i < codeLength; i++) {
var charIndex = Math.floor(Math.random() *
36);
code += selectChar[charIndex];
}
//alert(code);
if (checkCode) {
checkCode.className = "code";
checkCode.value = code;
}
}
function validate() {
var inputCode =
document.querySelector('#bf_client .vcode').value;
if (inputCode.length <= 0) {
alert("请输入验证码!");
return false;
} else if (inputCode != code) {
alert("验证码输入错误!");
createCode();//刷新验证码
return false;
}
else {
return true;
}
}
createCode()

依然抓包爆破,同上操作,成功

四、token防爆破

抓包如下,新增token验证

全选右击,发送到insrucder

这里选择Pichfork,爆破password和token

点选项,找到Grep-Extract,点添加

点获取回复

选中token的值,点OK,复制下来备用

找到请求引擎,线程改为1

找到重定向,选总是

点有效载荷,第一个payload爆破密码,选密码字典

第二个payload,选递归搜索,粘贴刚才的token值到图下位置,点开始攻击

成功爆破密码

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cwillchris

你的鼓励将让我产出更多优质干货

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值