十三、pikachu之暴力破解

news2024/12/24 9:50:58

文章目录

  • 1、暴力破解概述
  • 2、基于表单的暴力破解
  • 3、验证码的绕过
    • 3.1 验证码的认证流程
    • 3.2 验证码绕过(on client)
    • 3.3 验证码绕过(on server)
    • 3.4 token防爆破?

1、暴力破解概述

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

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

  • 是否要求用户设置复杂的密码;
  • 是否每次认证都使用安全的验证码或者手机otp;
  • 是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
  • 是否采用了双因素认证;

2、基于表单的暴力破解

(1)随便输入用户名和密码,并用burp进行抓包;

在这里插入图片描述

(2)把数据包send to intruder

在这里插入图片描述

(3)选择cluster bomb模式,将usenamepassword作为变量;

在这里插入图片描述

(4)设置payload,并导入字典,然后进行穷举。

在这里插入图片描述

(5)根据length,查看结果,可知:用户名为admin,密码为123456。

在这里插入图片描述

3、验证码的绕过

3.1 验证码的认证流程

(1)客户端request登录页面,后台生成验证码:

  • 后台使用算法生成图片,并将图片response给客户端;
  • 同时将算法生成的值全局赋值存到SESSION中。

(2)校验验证码:

  • 客户端将认证信息和验证码一同提交;
  • 后台对提交验证码与SESSION里面的进行比较。

(3)客户端重新刷新页面,再次生成新的验证码:
(4)验证码算法中一般包含随机数,所以每次刷新都会改变。

3.2 验证码绕过(on client)

不安全验证码on client常见问题:

  • 使用前端js实现验证码(纸老虎);
  • 将验证码在cookie中泄露,容易被获取;
  • 将验证码在前端源代码中泄露,容易被获取。

(1)随便输入账号密码,不输入验证码,提示请输入验证码;输入错误验证码,提示验证码输入错误;输入正确验证码,提示账号密码错误。

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

(2)由于验证码每次会变,我们无法从验证码这块进行暴力破解。查看页面的源码,看一下这个验证码是不是在前端做的,发现验证码是在javascript实现的。

在这里插入图片描述

(3)既然验证码是前端做的,可以通过以下方法绕过验证码:

  • 删除事件;
  • 禁用javascript;
  • 用burp抓包绕过。

  这里,我们先正确填写验证码,再使用burp抓包,然后爆破。

在这里插入图片描述

3.3 验证码绕过(on server)

不安全验证码(on server)常见问题:

  • 验证码在后台不过期,导致可以长期被使用;
  • 验证码校验不严格,逻辑出现问题;
  • 验证码设计的太过简单和有规律,容易被猜解。

(1)通过抓包,随便输入账号密码,不输入验证码,提示请输入验证码;输入错误验证码,提示验证码输入错误;输入正确验证码,提示账号密码错误。

在这里插入图片描述
在这里插入图片描述
(2)验证验证码是否存在不过期的问题,发现验证码可以重复使用。

在这里插入图片描述

(3)使用同样的方法进行爆破。

在这里插入图片描述

3.4 token防爆破?

(1)这关没有验证码了,用户名或者密码输错会提示用户名或密码不存在。

在这里插入图片描述

(2)抓取两次登录的数据包,然后放到compare里进行比较,查看二者的区别;

在这里插入图片描述
(3)尝试直接用第一/二次的token试试,报crsf token error
在这里插入图片描述

(4)尝试删除token,发现同样不行;

在这里插入图片描述

(5)在返回包里,发现了下一次验证的token,试试能不能绕过验证。事实证明返回包里的token就是下一次验证的token。

在这里插入图片描述

(6)使用burp的intrude模块进行爆破,选择pitchfork。最好知道用户名,因为在pitchfork模式下,如果你的字典只有100个密码组合,burp只执行100次。

在这里插入图片描述

前一个变量的设置跟之前一样,最后token的设置选择recursive grep

在这里插入图片描述

设置payload,直接选择你需要的位置,burp会自动生成正则表达式。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
设置最大线程为1,并进行爆破。
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

L1-035 情人节(Python实现) 测试点全过

题目 以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。 输入格式 输入按照点赞的先后顺…

Python数据分析 | 各种图表对比总结

本期将带领大家一起对在数据可视化的过程中常用的一些图表进行下总结: 条形图 【适用场景】 适用场合是二维数据集(每个数据点包括两个值x和y),但只有一个维度需要比较,用于显示一段时间内的数据变化或显示各项之间的…

thinkphp6 入门(1)--安装、路由规则、多应用模式

一、安装thinkphp6 具体参考官方文档 安装 ThinkPHP6.0完全开发手册 看云 下面仅列举重要步骤 ThinkPHP6.0的环境要求如下: PHP > 7.2.5 1. 安装Composer 2. 安装稳定版thinkphp 如果你是第一次安装的话,在命令行下面,切换到你的WE…

“R语言+遥感“水环境综合评价方法

详情点击链接:"R语言遥感"水环境综合评价方法 一:R语言 1.1 R语言特点(R语言) 1.2 安装R(R语言) 1.3 安装RStudio(R语言) (1)下载地址 &…

语言模型(language model)

文章目录 引言1. 什么是语言模型2. 语言模型的主要用途2.1 言模型-语音识别2.2 语言模型-手写识别2.3 语言模型-输入法 3. 语言模型的分类4. N-gram语言模型4.1 N-gram语言模型-平滑方法4.2 ngram代码4.3 语言模型的评价指标4.4 两类语言模型的对比 5. 神经网络语言模型6. 语言…

开发一款AR导览导航小程序多少钱?ar地图微信小程序 ar导航 源码

随着科技的不断发展,增强现实(AR)技术在不同领域展现出了巨大的潜力。AR导览小程序作为其中的一种应用形式,为用户提供了全新的观赏和学习体验。然而,开发一款高质量的AR导览小程序需要投入大量的时间、人力和技术资源…

C语言 数字在升序数组中出现的次数

目录 1.题目描述 2.题目分析 2.1遍历数组方法 2.2二分查找方法 2.3代码示例 数字在升序数组中出现的次数 这道题可以用遍历数组和二分查找来处理 1.题目描述 2.题目分析 题目中有一个关键信息,非降序数组,我们可以使用if语句来处理这个问题 if(…

记录一次Modbus通信的置位错误

老套路,一图胜千言,框图可能有点随意,后面我会解释 先描述下背景,在Modbus线程内有一个死循环,一直在读8个线圈的状态,该线程内读到的消息会直接发送给UI线程,UI线程会解析Modbus数据帧&#xf…

Hightopo 使用心得(6)- 3D场景环境配置(天空球,雾化,辉光,景深)

在前一篇文章《Hightopo 使用心得(5)- 动画的实现》中,我们将一个直升机模型放到了3D场景中。同时,还利用动画实现了让该直升机围绕山体巡逻。在这篇文章中,我们将对上一篇的场景进行一些环境上的丰富与美化。让场景更…

【排序】快速排序——为什么这个排序最快?

以从小到大的顺序进行说明。 定义 快排是Hoare在1962年(彼时的中国,是三年困难时期,好好学习建设祖国!)提出的基于二叉树结构的排序。 为什么说是基于二叉树? 因为这种排序每次选出一个基准值,…

35、下载、安装 jdk11 记录,Idea中把项目从 jdk8 换 jdk 11

之前一直用jdk8,现在改成 11的试试看 登录官网下载这个11 https://www.oracle.com/cn/java/technologies/downloads/#java11-windows 下载jdk的oracle官网 需要自己注册oracle账户 修改环境变量的 JAVA_HOME Path 路径这里原本添加8的时候有了,不…

构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程

文章目录 架构要点优势与应用案例研究:基于云原生大数据平台的智能营销分析未来展望:大数据与人工智能的融合结论 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏…

【MySQL系列】MySQL复合查询的学习 _ 多表查询 | 自连接 | 子查询 | 合并查询

「前言」文章内容大致是对MySQL复合查询的学习。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、基本查询回顾二、多表查询三、自连接四、子查询4.1 单行子查询4.2 多行子查询4.3 多列子查询4.4 在from子句中使用子查询 五、合并查询 一、基本查询回顾…

RabbitMQ的镜像队列

镜像队列 如果 RabbitMQ 集群中只有一个 Broker 节点,那么该节点的失效将导致整体服务的临时性不可用,并且也可能会导致消息的丢失。可以将所有消息都设置为持久化,并且对应队列的durable 属性也设置为 true ,但是这样仍然无法…

ubuntu学习(五)----读取文件以及光标的移动

1、读取文件函数原型介绍 ssize_t read(int fd,void*buf,size_t count) 参数说明: fd: 是文件描述符 buf:为读出数据的缓冲区; count: 为每次读取的字节数(是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文…

jmeter递增压测线程组配置

jmeter递增压测线程组配置 新建线程组线程组参数详解及填写其他指标设置 新建线程组 操作位置如图: 线程组参数详解及填写 其他指标设置 其他指标设置可参考另一篇文章: 链接: jmeter 在linux服务器中执行性能测试、监听服务器资源指标

单例模式的相关知识

饿汉模式 package Thread; class Singleton{private static Singleton instance new Singleton();public static Singleton getInstance(){return instance;}private Singleton(){} }public class demo1 {public static void main(String[] args) {Singleton S1 Singleton.ge…

Sentinel dashboard无法查询到应用的限流配置问题以及解决

一。问题引入 使用sentinle-dashboard控制台 项目整体升级后,发现控制台上无法看到流控规则了 之前的问题是无法注册上来 现在是注册上来了。结果看不到流控规则配置了。 关于注册不上来的问题,可以看另一篇文章 https://blog.csdn.net/a15835774652/…

Mybatis与Spring集成配置

目录 具体操作 1.1.添加依赖 1.2创建spring的配置文件 1.3. 注解式开发 Aop整合pagehelper插件 1. 创建一个AOP切面 2. Around("execution(* *..*xxx.*xxx(..))") 表达式解析 前言: 上篇我们讲解了关于Mybatis的分页,今天我们讲Mybatis与…

如何向BertModel增加字符

这里写自定义目录标题 看起来add_special_tokens和add_tokens加入的新token都不会被切分。