Pikachu漏洞练习平台之暴力破解(基于burpsuite)

从来没有哪个时代的黑客像今天一样热衷于猜解密码 ---奥斯特洛夫斯基

Burte Force(暴力破解)概述

“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。

理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:

1.是否要求用户设置复杂的密码;
2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;
3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
4.是否采用了双因素认证;...等等。
千万不要小看暴力破解漏洞,往往这种简单粗暴的攻击方式带来的效果是超出预期的!

首先看第一关,题目是一个登录界面

看到这种第一想法是尝试弱口令(但是为了把流程走一遍,我们假装什么都不知道)

随便乱输,提示用户或者密码不存在

我们使用burpsuite进行抓包

关于burpsuite的简单用法可以参考我之前的博客:

easyupload及BurpSuite抓包、改包、放包

http://t.csdnimg.cn/H9RCs

Burp Suite的使用(常用模块)

http://t.csdnimg.cn/nqkBG

(链接可能会过期,可以直接搜索博客名字)

先开启burpsuite的拦截,随便输入用户名和密码,点击login

查看burpsuite,已经抓到请求包

发送到攻击模块

首先需要清除掉参数位置

在我们需要爆破的参数位置进行添加(用户名和密码我们都不知道都需要爆破)

简单说一下攻击类型的选择

默认是sniper,这个用于单个参数的爆破

由于我们这里是两个参数,因此使用clusterbomb

这个类型可以理解为将两个参数的各种可能情况都两两组合进行爆破

 一般我们是导入密码字典

但是字典内容太多,这里仅做演示,因此我自己随便添加了几个用户名和密码

(注意:这里需要设置两个参数分别使用的字典)

之后开始攻击

对于结果的筛选我们一般看长度,长度不同的一般是爆破成功了的(至少回显不一样)

可以看到34997成功爆出用户名为admin,密码为123456

这就是使用bp进行最简单的暴力破解的大致流程

我们可以在前端输入用户名和密码进行验证,确实登录成功

 

我们继续看第二关,这里多出了一个验证码

经过测试,验证码输入错误是不行的 

没有输验证码也是不行的

当然,这些其实都只是前端的一个检查,我们同样可以在输入正确验证码之后进行爆破

为什么我知道它只是前端的一个检验呢,重点来了

我们先随便抓一个包然后使用重发器测试(注意看我标注的三个地方

可以看到,我的验证码提交的验证码一直都是 j2zppk

这仅仅是满足了前端页面显示的验证码

当我继续重复提交请求时,前端显示的验证码其实是变了的(显示内容确实会刷新)

但是通过回显观察,有提示我验证码错误吗?并没有,而是回显的密码不存在。

这其实就是一个漏洞,我们可以绕过前端验证进行密码爆破。

假设我们已经知道用户名为admin

同样抓包以及设置爆破的参数和爆破的字典(这里只爆破密码所以使用sniper)

成功爆破出密码为123456

还有一种方法,就算我们每次提交的请求,它的验证码会动态的实际变化

(也就是说并不能前端绕过,我们必须直面它,可以使用工具Codex

先将burpsuite抓到的请求包放进去

找到验证码的位置

也就是这个验证码请求的文件

我们可以先单独测试识别一下,可以看到识别成功

 将验证码地址导入(注意:去掉问号后面的内容)

导入爆破字典、设置爆破位置、标记验证码位置、选择爆破方式

还需要填入验证码错误的特征,这里是:验证码输入错误哦!

填入验证码错误特征后,点击start,执行结果如下:

观察可以看到,每次请求输入的验证码都是不同的

并且我们成功爆破出密码为123456

来到第三关,如果输入错误验证码会出现弹窗,说明这个验证也是写在了前端的js代码里

这里更简单,我们只需要将js禁用掉

即使我们不输入验证码,也可以进行登录,并没有出现验证码相关的提示

使用bp进行抓包

使用重发器测试,可以看到即使我们没有输入验证码,提示的也是密码不存在

基于这点,我们就可以像前面那样使用攻击模块进行密码爆破了,这里就不再过多演示。

接下来我们看最后一关也是最重要的一关:token

抓包后使用重发器测试

可以看到多出了一个参数 token

第一次发送回显密码不存在

后续再次发送,回显 csrf token error

说明什么?

说明每次都会对token进行校验,并且token是变化的、随机的

我们可以再次抓包查看,可以看到token变了

我们首先请求题目页面

查看响应,发现在回显里会出来一个token的值:34671657ed547da9e5305813795

此时我们输入用户名和密码后再次请求

可以看到,出来的token正式我们请求题目页面时回显响应的token值

也就是说我们找到了token的来源

将包发到测试器,设置爆破位置

这里攻击模式我们使用 Pitchfork

这个模式是将每次获取的token与密码一一对应的组合后进行爆破

设置第一个参数密码的字典

设置第二个参数token的字典

选择总是(always)

选择递归搜索,即可以将我们的正则匹配放进去

接下来将线程配置为1(因为递归搜索只支持线程数为1)

开始攻击

可以看到每次请求不同的密码都对应了不同的token

并且成功爆破出密码为123456

至此,关于皮卡丘靶场暴力破解的关卡讲解全部结束

我自认为还是讲得比较详细的了,欢迎大家评论区交流讨论

创作不易,也期待大家的支持与关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/254341.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【操作系统】实验名称: 实验五 文件系统

实验目的: 1. 掌握文件系统的基本概念和工作机制 2. 掌握文件系统的主要数据结构的实现 3、掌握软件系统实现算法 实验内容: 设计并实现一个虚拟的一级(单用户)文件系统程序 提供以下操作 1、文件创建/删除接口命令 2、目录创建/删…

合并 K 个排序链表——Java解答

题目:合并 K 个排序链表 题目描述: 给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例: 假设有以下三个链表: 1->4->5, 1->3->4,…

QUIC在零信任解决方案的落地实践

一 前言 ZTNA为以“网络为中心”的传统企业体系架构向以“身份为中心”的新型企业安全体系架构转变,提供解决方案。随着传统网络边界不断弱化,企业SaaS规模化日益增多,给终端安全访问接入创造了多元化的空间。其中BYOD办公方式尤为突出&#…

SpringBoot使用@DS配置 多数据源 【mybatisplus druid datasource mysql】

项目最近需要使用多数据源,不同的mapper分别读取不同的链接,本项目使用了mybatisplus druid 来配置多数据源,基于mysql数据库。 目录 1.引入依赖 ​2.配置文件 application.yaml 3.Mapper中使用DS切换数据源 4.使用DS的注意事项 1.引入依…

苹果忽略iPhone?2024可穿戴产品或成重心!

一代版本一代神,即便是强如iPhone也有着被忽视的一天,当然,这么说有些夸张。虽然iPhone永远都是苹果最重要的产品,但在明年,苹果的重心将偏向其他产品。 彭博社记者马克古曼(Mark Gurman)在新一…

如何确保对称密钥管理的存储安全?

确保对称密钥管理的存储安全是保障信息安全的重要一环。以下是一些建议,以确保对称密钥管理的存储安全: 使用安全存储设备:选择使用经过验证的安全存储设备来存储对称密钥。这些设备通常具有高度的物理安全性,可以防止未经授权的访…

使用Umi搭建React项目

环境准备 一、首先确保有 node环境,并确保 node 版本是 14 或以上。(推荐用 nvm 来管理 node 版本,windows 下推荐用 nvm-windows) nvm使用教程 二、然后需要包管理工具。node 默认包含 npm,但也可以选择其他方案&a…

eclipse-安装WindowBuilder,怎么安装

WindowBuilder是Eclipse的一个插件,可以帮助开发者使用Java Swing、JavaFX和SWT快速构建图形用户界面(GUI)。下面是WindowBuilder的安装步骤: 1. 打开Eclipse IDE(请确保已安装JDK)。 2. 点击“Help”菜单…

【MySQL】:表的删除和修改

表的删除和修改 一.update(修改)二.delete(删除)1.删除数据2.截断表 三.插入查询的数据四.聚合函数五.group by 句子的使用1.导入表2.进行操作 一.update(修改) 对查询到的结果进行列值更新 下面有一个表,接下来的操作都是对该表进行操作。 1.将孙悟空同学的数学成绩…

目标跟踪 MOT数据集和可视化

目录 MOT15数据集格式简介 gt可视化 本人修改的GT可视化代码: MOT15数据集格式简介 以下内容转自:【目标跟踪】MOT数据集GroundTruth可视化-腾讯云开发者社区-腾讯云 MOT15数据集下载:https://pan.baidu.com/s/1foGrBXvsanW8BI4eybqfWg?…

100GPTS计划-AI写诗PoetofAges

地址 https://chat.openai.com/g/g-Cd5daC0s5-poet-of-ages https://poe.com/PoetofAges 测试 创作一首春天诗歌 创作一首夏天诗歌 创作一首秋天诗歌 创作一首冬天诗歌 微调 诗歌风格 语气:古典 知识库

嵌入式Linux开发板硬件学习-基于cadence

嵌入式Linux开发板硬件学习-基于cadence 目录原理图网表输出功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创…

本章主要介绍Spring Framework中用来处理URI的多种方式

1.使用 UriComponentsBuilder 构建URi 话不多说 直接上代码 UriComponents uriComponents UriComponentsBuilder.fromUriString("https://example.com/hotels/{hotel}").queryParam("q", "{q}").encode().build();URI uri uriComponents.exp…

js传递json数据过大的解决方案

protobufjs 使用protobuf,定义如下结构 Person.protobuf syntax "proto3";message Person {string name 1;int32 age 2; }Person.thrift namespace java com.example.Personstruct Person {1: required string name,2: required i32 age }使用bench…

Android笔记(十八):面向Compose组件结合Retrofit2和Rxjava3实现网络访问

一、Retrofit2 Square公司推出的Retrofit2库(https://square.github.io/retrofit/),改变了网络访问的方式。它实现了网络请求的封装。Retrofit库采用回调处理方式,使得通过接口提交请求和相应的参数的配置,就可以获得…

3 - Electron BrowserWindow对象 关于窗口

优雅的打开应用~ 当加载缓慢,打开应用的一瞬间会出现白屏,以下方法可以解决 const mainWindow new BrowserWindow({ show: false }) mainWindow.once(ready-to-show, () > {mainWindow.show() }) 设置背景颜色 const win new BrowserWindow({ b…

高德地图画线,适用于在地图上画出各种道路

addPolyline() {let AMap this.AMaplet polyline new AMap.Polyline({// map: this.map,// polyline 路径path: [new AMap.LngLat("119.368904", "30.913423"),new AMap.LngLat("119.382122", "30.901176"),],strokeColor: #F3D930,…

Windows下配置最新ChromeDriver

1、问题 在使用代码调用谷歌浏览器时会出错: from selenium import webdriver driver webdriver.Chrome() SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 114 Current browser versi…

低噪声 256 细分微步进电机驱动MS35776

产品简述 MS35776 是一款高精度、低噪声的两相步进电机驱动芯 片。芯片集成了快速模式与静音模式来满足高速与低速下的不 同应用。芯片内置功率 MOSFET ,长时间工作平均电流可以达 到 1.4A ,峰值电流 2A 。芯片集成了欠压保护、过流保护、短 地…

java中实现定时给微信群中发送每日天气情况

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 实现效果 这个功能,适用于做私域的朋友,下面是效果,大家可以参考一下; 🔴🟠🟡 大家好!我是…