pikachu靶场通关2 ---验证码绕过(on server)

往期通关

pikachu靶场通关1 —基于表单的暴力破解



工具准备

burpsuite 专业版


一、验证码绕过(on server)

在这里插入图片描述

二、使用步骤

1.设置过滤器

image勾选上

在这里插入图片描述
这样做的目的是:bp可以捕获到验证码刷新的请求包

2.刷新验证码

在刷新验证码时,bp截获其请求包,并将response报文发送到浏览器端,因此response中的Set-Cookie字段就记录了刷新后的验证码。

第一次刷新前验证码: y328xv
在这里插入图片描述
单击验证码进行刷新,bp端的response中的Set-Cookie字段

在这里插入图片描述

第一次刷新后验证码:anc278
在这里插入图片描述
再刷新一次:
在这里插入图片描述
刷新后的验证码:uqfdi7
在这里插入图片描述
刷新的目的是为了验证bp比浏览器更早知道response的内容。利用这一漏洞,我们可以进行爆破。

二、设置macro

project options -->Sessions–>Macros–>add

在这里插入图片描述

社区版bp没有 project options 功能,所以要使用专业版。

选中最后一次刷新记录

在这里插入图片描述

configure item

在这里插入图片描述
在这里插入图片描述
1,输入参数名vcode
2,选中参数
3,ok
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置Macro的生效范围

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、爆破

打开拦截功能intercept

之后的内容与pikachu靶场通关1 —基于表单的暴力破解类似。
在这里插入图片描述
尝试登录
在这里插入图片描述

bp截获

在这里插入图片描述

发送到intruder

在这里插入图片描述

整理替换字段

在这里插入图片描述

加载密码字典

在这里插入图片描述

发现有一行结果的Length不同

在这里插入图片描述

尝试登陆,登陆成功

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于 PHP 语言实现的验证码防御机制示例代码,可以在Pikachu靶场中使用: ```php <?php session_start(); // 开启会话 // 判断请求是否为POST请求 if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 获取表单数据 $username = $_POST['username']; $password = $_POST['password']; $captcha = $_POST['captcha']; // 判断验证码是否正确 if (strtolower($captcha) !== strtolower($_SESSION['captcha'])) { echo '验证码错误!'; exit; } // TODO: 进行登录验证 } else { // 生成验证码图片 $image = imagecreatetruecolor(100, 30); $bgcolor = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $bgcolor); // 生成随机验证码 $captcha = ''; for ($i = 0; $i < 4; $i++) { $fontsize = 6; $fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120)); $fontcontent = rand(0, 9); $captcha .= $fontcontent; $x = ($i * 100 / 4) + rand(5, 10); $y = rand(5, 10); imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor); } // 保存验证码到会话中 $_SESSION['captcha'] = $captcha; // 输出验证码图片 header('Content-Type: image/png'); imagepng($image); // 销毁图片资源 imagedestroy($image); } ``` 上述代码中,首先通过 `session_start()` 开启会话,然后判断请求是否为POST请求。如果是POST请求,就获取表单数据,然后判断验证码是否正确,如果验证码不正确,直接输出错误信息。如果验证码正确,则进行登录验证,这部分代码需要根据具体情况进行实现。 如果请求不是POST请求,就生成验证码图片,并将验证码保存到会话中,然后将验证码图片输出给客户端。客户端在提交登录表单时,需要同时提交验证码。 这种基于服务器端的验证码防御机制,可以有效防止自动化程序对表单进行暴力破解攻击。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值