pikachu靶场上的暴力破解

目录

一、暴力破解

基于表单的暴力破解

验证码绕过(on server) 

​编辑 验证码绕过(on client)

​编辑 token防爆破?

 二、暴力破解的相关知识点

(1)Burte Force(暴力破解)概述

(2)验证码的绕过原理

【验证码机制原理】

【客户端可能存在的安全问题】 

验证码固定

无条件不刷新

有条件不刷新 

(3) token防爆破的知识点

Token 是如何工作的? 

最优解法


一、暴力破解

基于表单的暴力破解

后端php代码审计:pikachu靶场第一关-密码爆破之基于表单的暴力破解(附代码审计)-CSDN博客

1.对于不知道用户名和密码的,进行暴力破解,首先抓包,发送到Intruder

2.设置到用户名和密码的字典,设置好就进行暴力破解 

 3.暴力破解出来为admin/123456,注册成功

验证码绕过(on server) 

后端php代码审计:pikachu靶场第二关-密码爆破之验证码绕过(on server)(附代码审计)_pikachu验证码绕过on server-CSDN博客

1.发现输入错误的验证码,并且每次提交注册请求后验证码都会刷新;输入正确的验证码,错误的用户名和密码,会说用户名和密码不存在;只要输入错误的验证码,就会输出验证码错误

2.进行抓包,发送到repeater,观察到不管你怎么修改用户名和密码,验证码始终是有效的

3.抓包发送到Intruter,重复上题的操作,得到用户名和密码

 验证码绕过(on client)

后端php代码审计:pikachu靶场第三关-密码爆破之验证码绕过(on client)(附代码审计)_pikachu验证码绕过on client代码审计-CSDN博客

1.用户名,密码,验证码任意输入,直接出现前端弹框,很可能是前端验证

2.在浏览器中禁用js,验证码进行选填,像上面的题一样,爆破得出用户名和密码

 token防爆破?

后端php代码审计:pikachu靶场第四关-密码爆破之token防爆破?(附代码审计)_利用验证token值的方式对pikachu靶场中的csrf(post)漏洞进行防御。-CSDN博客

1.抓包进行观察,发现存在token值,修改其值,发现会回显这个值错误

2.token放爆破,攻击方式选择Pitchfork,这里只能爆破两个参数,所以要已知用户名或密码时才能使用,变量设置在password和token(在知道用户名的情况下)

3.将Payload-1(用户名/密码)设置为正常字典,第一个密码选择Simple list,然后再选择字典

4.第二个token的值选择Recursive grep,Payload-2(Token)设置为递归提取即可

5.然后在Options中找到Redlrections设置为Always,原因:如果不点上这个就不会打开 HTML 包的 body 部分,因为 Token 值是存储在 body 的 hidden 部分,那么也就不会自动获取 Token 值,我们也就不能绕过它进行暴力破解了

6.在Resource Pool中进行下图的设置,将线程设置为 1,否则多线程爆破后 Token 会无法被匹配到(对于每一个包返回来的token值都是不一样的,所以我们只能选择单线程进行攻击)

7.Recursive_Grep模式不支持多线程攻击,选择Grep-Extract,意思是用于提取响应消息中的有用信息,点击Add,然后点击Refetch response,在下面出现的数据里找到token,复制 

8.将复制的token的值粘贴到first request ,这里的token值是之前复制的token值

 9.进行攻击,比较长度,得到密码,最后注册成功

 二、暴力破解的相关知识点

(1)Burte Force(暴力破解)概述

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

web安全中的暴力破解俗称穷举法或者枚举法,就是利用尝试所有的可能性最终获取正确的结果的一种攻击方式。

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

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

(2)验证码的绕过原理

资料参考:渗透测试-验证码的爆破与绕过_验证码绕过-CSDN博客

【验证码机制原理】

客户端发起请求->服务端响应并创建一个新的SessionID同时生成随机验证码,将验证码和SessionID一并返回给客户端->客户端提交验证码连同SessionID给服务端->服务端验证验证码同时销毁当前会话,返回给客户端结果。

【客户端可能存在的安全问题】 

1、有的网站验证码由本地js生成仅仅在本地用js验证。可以在本地禁用js,用burp把验证字段删除。
2、有的网站把验证码输出到客户端html中,送到客户端Cookie或response headers。
3、有些网站默认不显示验证码,而是在输入错误一定数量之后才需要验证验证码,开发人员可能在Cookie中写入一个标记loginErr,用来记录错误数量,则可以不更新Cookie中的loginErr值反复提交,验证码就不会出现。

验证码固定

导致验证码不刷新(固定)的原因是:登录密码错误之后,session中的值没有更新,验证码不变。验证码不刷新通常有以下两种情况:无条件不刷新、有条件不刷新。

无条件不刷新

无条件不刷新是指在某一时间段内,无论登录失败多少次,只要不刷新页面,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解。换句话说,攻击者可以在同一个会话下,在获得第一个验证码后,后面不再主动触发验证码生成页面,并且一直使用第一个验证码就可循环进行后面的表单操作,从而绕过了验证码的屏障作用,对登录进行暴力猜解。

有条件不刷新 

有条件不刷新多见于如下情况:登录失败之后,系统会打开一个新页面或者弹出一个新的警告窗口,提示用户登录失败,点击确定后返回登录界面且验证码刷新。这种情况下,只要我们不关闭新窗口或弹窗,配合使用Burpsuite的intruder模块就可以进行暴力破解了。 

(3) token防爆破的知识点

Token是什么?

所谓的Token,其实就是服务端生成的一串加密字符串、以作客户端进行请求的一个“令牌”。当用户第一次使用账号密码成功进行登录后,服务器便生成一个Token及Token失效时间并将此返回给客户端,若成功登陆,以后客户端只需在有效时间内带上这个Token前来请求数据即可,无需再次带上用户名和密码。并且后端每收到一次请求就会产生一个新的token,同时把token连同响应信息一起发给前端。

那么Token都可以解决哪些问题呢?

1.Token具有随机性、不可预测性、时效性、无状态、跨域等特点。

2.Token完全由应用管理,所以它可以避开同源策略

3.Token可以避免CSRF攻击

4.Token可以是无状态的,可以在多个服务间共享

5.Token是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回Token给前端。前端可以在每次请求的时候带上Token证明自己的合法地位。如果这个Token在服务端持久化(比如存入数据库),那它就是一个永久的身份令牌。

Token 是如何工作的? 

1.通过 Burp Suite 进行抓包,我们可以发现请求中包含了一条 Token 字段

2.发现具体的 Token 数值后,我们在前端页面发现此值,发现 Token 在前端的变量名叫做Value

3.通过查询后端 PHP 代码,找到对应的后端代码

4.通过变量名token我们还可以发现后端的登录逻辑判断代码

5.回看前端,Token 所属的HTML <input>标签类型是hidden,相当于每次随着表单(POST)隐形提交了 Token 值,只不过这个值在前端默认是不可见的,若我们将标签类型改为text则可以看到 Token 值也出现在前端

HTML input 标签类型属性 text:默认,定义单行输入字段,用户可在其中输入文本,默认是 20个字符 hidden:定义隐藏输入字段 

 6.到此,整个 Token 的运行逻辑就已清晰,当首次请求时,会收到一条包含 Token 的响应包,当我们在同一页面进行第二次请求时,则会提交上一次的 Token 并获取下一次请求所需的 Token,并以此原理不断循环下去

资料参考:https://zhuanlan.zhihu.com/p/671570750

(36.2)【Token漏洞专题】Token的原理、认证过程、爆破过程_recursive grep payloads cannot be used with multip-CSDN博客

最优解法

既然我们已经知道当前的响应会包含上一次所需的 Token,那我们就可以使用工具对上一次响应包中的 Token 进行提取,放入下一次的请求当中,形成一个递归的循环,至此理论成立,以上题为例

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

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

相关文章

智能型程控直流电子负载的介绍

智能型程控直流电子负载是一种高精度、高稳定性的电子设备&#xff0c;主要用于模拟各种实际负载情况&#xff0c;对电源设备进行测试和调试。它能够精确控制电流、电压、功率等参数&#xff0c;以满足不同应用场景的需求。 智能型程控直流电子负载的主要特点有以下几点&#x…

连接查询-外连接(FULL JOIN)、内连接(JOIN)、自身连接

一、表与表之间存在着某种联系&#xff0c;如果一个查询必须在多个表之间完成&#xff0c;则需要用到连接查询 二、连接查询的SQL查询语句 格式&#xff1a; SELECT A1&#xff0c;A2&#xff0c;...&#xff0c;Am FROM R1&#xff0c;R2&#xff0c;..&#xff0c;Rn WH…

推荐这3个APP,帮助你成长

扇贝阅读 当年考英语四级&#xff0c;扇贝阅读帮了很大的帮&#xff0c;这个应用我推荐给了好多同学使用&#xff0c;大家一致反馈不错。 提供很多原版的英文原著供学习&#xff0c;还自带翻译功能&#xff0c;并且提供单词本&#xff0c;遇到不懂的单词可以纪录到单词本中&am…

车载网络安全指南 网络安全框架(二)

返回总目录->返回总目录<- 目录 一、概述 二、网络安全组织管理 三、网络安全活动 四、支撑保障 一、概述 汽车电子系统网络安全活动框架包含汽车电子系统网络安全活动、组织管理以及支持保障。其中,网络安全管理活动是框架的核心,主要指汽车电子系统生命周期各阶段…

Day 14:2938. 区分黑球和白球

Leetcode 2938. 区分黑球和白球 桌子上有 n 个球&#xff0c;每个球的颜色不是黑色&#xff0c;就是白色。 给你一个长度为 n 、下标从 0 开始的二进制字符串 s&#xff0c;其中 1 和 0 分别代表黑色和白色的球。 在每一步中&#xff0c;你可以选择两个相邻的球并交换它们。 返…

E10:流程明细表表单字段值变化触发事件

效果– //window.WeFormSDK.showMessage("这是一个E10的提示", 3, 2);// 获取表单实例const weFormSdk window.WeFormSDK.getWeFormInstance();// 获取主表字段fieldIdconst bt weFormSdk.convertFieldNameToId("bt");const lcbh weFormSdk.convertFi…

第五讲:51单片机+RA8889驱动控制彩屏 完整源码说明 【 源码v1.2 】

51单片机驱动控制彩屏系列讲座 第一讲&#xff1a;单片机STC89C52RA8889驱动控制彩屏【 源码v1.0 】 第二讲&#xff1a;单片机STC89C52RA8889驱动控制彩屏 代码移植介绍 第三讲&#xff1a;单片机STC89C52RA8889驱动控制彩屏 代码的压缩&#xff08;Keil编译器&#xff09; 第…

C++ 中的负无穷大赋值

1&#xff0c;代码先行 示例&#xff1a; #include<iostream> #include<limits>using namespace std;int main() {float inf_pos numeric_limits<float>::infinity();float inf_neg -1*inf_pos;cout << "inf_pos " << inf_pos &l…

揭秘:消费1000,竟能领回2000?每天还有额外收入?

大家好&#xff0c;我是吴军&#xff0c;今天将为大家揭秘一种令人眼前一亮的商业模式——循环购模式。你可能会问&#xff0c;消费1000元&#xff0c;商家却送出了2000元的“好处”&#xff1f;每天还有钱领&#xff0c;这些钱还能提现&#xff1f;这究竟是怎么一回事&#xf…

[13] CUDA_Opencv联合编译过程

CUDA_Opencv联合编译过程 详细编译过程可见我之前的文章&#xff1a;Win10下OpencvCUDA联合编译详细教程&#xff08;版本455、460、470,亲测可用&#xff01;&#xff01;&#xff01;&#xff09;本文给出Windows\linux下的opencvcuda的编译总结&#xff0c;摘自 <基于GP…

CNS-BL30H系列直流无刷电机驱动器|电机参数配置方法

CNS-BL30H系列直流无刷电机驱动器|电机包含CNS-BL30HB、CNS-BL30HDN、CNS-BL30HSN&#xff0c;采用一驱二设计&#xff0c;可以同时驱动两个小于48V/1000W的直流无刷电机&#xff0c;体积小巧&#xff0c;安装方便&#xff0c;接线快捷&#xff0c;本文重点介绍CNS-BL30H系列直…

23种设计模式之组合模式

组合模式 1、定义 组合模式&#xff1a;组合多个对象形成树状结构以表示具有部分-整体关系的层次结构。组合模式让客户端可以统一对待单个对象和组合对象 2、组合模式结构 Component&#xff08;抽象构件&#xff09;&#xff1a;可以是接口或抽象类&#xff0c;为叶子构件…

时序分解 | Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解

时序分解 | Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解 目录 时序分解 | Matlab实现SCSSA-VMD融合正余弦和柯西变异的麻雀搜索算法优化变分模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab…

Spring—bean

一、bean的作用域 单例 默认化为&#xff1a;单例&#xff08;singleton&#xff09; SpringBean类&#xff1a; package com.hei.bean; public class SpringBean { public SpringBean(){System.out.println("Springbean的无参数构造方法执行了"); } } spring,xml…

网络安全领域国内外有哪些法律法规?

1. 中国 1.中华人民共和国网络安全法&#xff08;简称网安法&#xff09; 生效时间&#xff1a;2017年6月1日主要内容&#xff1a;规范网络运营行为&#xff0c;维护网络安全&#xff0c;保护国家安全和公共利益&#xff0c;以及保护公民、法人和其他组织的合法权益。 2.中华…

CMA、CNAS软件检测报告如何收费?软件测评中心出具报告需多久?

众所周知&#xff0c;各行各业都需要资质认证&#xff0c;正如教师会有教师资格证&#xff0c;医师会有医师资格证&#xff0c;律师会有律师证&#xff0c;软件产品亦如此。对于软件测试报告来说CMA和CNAS资质认证就是获得行业甚至国家认可的重要依据。 CMA和CNAS软件检测报告…

将对象序列化到文件

ObjectOutputStream可以将一个内存中的Java对象通过序列化的方式写入到磁盘的文件中。被序列化的对象必须要实现Serialzable序列化接口&#xff0c;否则会抛出异常。 创建对象 public class Users implements Serializable {private int userid;private String username;priv…

C++和C语言到底有什么区别?

引言&#xff1a;C和C语言是两种非常常见的编程语言&#xff0c;由于其广泛的应用和灵活性&#xff0c;它们在计算机科学领域内受到了广泛的关注。虽然C是从C语言发展而来的&#xff0c;但是这两种语言在许多方面都有所不同。本文将对C和C语言进行比较和分析&#xff0c;以便更…

C++中的结构体——结构体中const的使用场景

作用&#xff1a;用const来防止误操作 示例 运行结果

2024最新流媒体在线音乐系统网站源码 音乐社区 多语言开心版

本文选自&#xff1a;2024最新流媒体在线音乐系统网站源码 音乐社区 多语言开心版 - 源码1688 应用介绍 简介&#xff1a; 2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版 图片&#xff1a;