本篇blog导航

~暴力破解&暴力破解漏洞概述

~基于表单的暴力破解实验

~暴力破解的绕过和防范(验证码&Token)

    ~验证码的基础知识

    ~验证码绕过(on client)

    ~验证码绕过(on server)

~防范措施

    ~措施总结

    ~token防爆破?

一、暴力破解&暴力破解漏洞概述

1、什么是暴力破解?

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

2、字典如何更有效,便于提高暴力破解的效率?

    ★常用的账号密码(弱口令),比如常用用户名/密码TOP500等;

    ★互联网上被脱裤后账号密码(社工库),比如csdn曾泄露的约600w用户信息;

    ★使用指定的字符使用工具按照指定的规则进行排列组合算法生成的密码。

3、什么是暴力破解漏洞?

    如果一个网站没有对登陆接口实施防暴力破解的措施,或者实施了不合理的措施,则我们称该网站存在暴力破解漏洞。

4、什么措施可以防暴力破解?

    ★是否要求用户设置了复杂的密码;

    ★是否每次认证都使用安全的验证码;

    ★是否对尝试登陆的行为进行判断和限制;

    ★是否在必要的情况下采用了双因素认证

    ……

5、暴力破解漏洞测试流程?

(1)确认登陆接口的脆弱性

    确认目标是否存在暴力破解的漏洞。(即被暴力破解的可能性)

    例如:尝试登陆-抓包-观察验证元素和response信息,判断是否存在被暴力破解的可能。

(2)对字典进行优化

    根据实际的情况对字典进行优化,提高爆破的效率。

(3)工具自动化操作

    配置自动化工具(例如:线程、超时时间、重试次数等等),进行自动化操作。

6、如何优化字典?

(1)根据注册提示信息进行优化

    对目标站点进行注册,搞清楚账号密码的一些限制,例如:目标站点要求密码必须是6位以上,字母数字组合,则可以按照此规则优化字典,例如去掉不符合要求的密码。

(2)如果爆破的是管理后台,往往这种系统的管理员是admin/administrator/root的几率比较高,可以使用这三个账号+随便一个密码,尝试登陆,查看返回的结果,确定用户名。

例如:

    输入xxx/xxxxwx返回"用户名或密码错误";

    输入admin/xxxf返回"密码错误",则可以基本断定用户名是admin。

此时我们可以直接对密码进行爆破,提高效率。

二、基于表单的暴力破解实验

本次实验我会详细说明burp suite暴力破解模块的使用步骤。以后再进行相同模块使用的时候,就不这么详细了。

1、打开我们的pikachu平台,来到暴力破解下的基于表单的暴力破解模块。

 

2、提示我们账号密码不存在,我们来到burp suite:Proxy->HTTP history。

3、尝试使用burp suite的暴力破解模块进行破解。

4、打开Intruder,给变量加上特殊符号;

5、选择Attack type为Cluster bomb

6、准备两个.txt文件,命名为username.txt和password.txt。

因为是测试,所以我是自己编写的简单密码本,这样可以提高演示的速度。

7、做如下操作

(1)为第一个变量选择username.txt这个密码本。

(2)为第二个变量选择password.txt这个密码本。

8、我们回想一个问题:在破解完成后,如何判断出哪一对用户名和密码是正确的呢?

我们这样来判断:

9、对线程并发数等参数进行设置(也可选择使用默认的选项),执行破解程序。

10、分析结果。

11、用破解得到的username和password在网站上尝试登陆。

三、暴力破解的绕过和防范(验证码&Token)

3.1 验证码的基础知识:

★验证码是用来做什么的?

    来验证对方是一台机器还是一个人!

    √登录暴力破解

    √防止机器恶意注册

★验证码的认证流程是?

    ①客户端request登陆页面,后台生成验证码:

        1.1后台使用算法生成图片,并且将图片response(响应)给客户端。

        1.2同时将算法生成的值全局赋值保存到SESSION中。

    ②校验验证码:

        2.1客户端将认证信息和验证码一同提交。

        2.2后台对提交的验证码与SESSION里边的进行比较。

    ③客户端重新刷新页面,再次生成新的验证码:

        验证码算法中一般包含随机函数,所以每次刷新都会改变。

★只要有了验证码就可以防止被暴力破解嘛?

    当然不是啦,你想什么呢?!你的验证码就一定安全吗?

 

3.2 验证码绕过(on client)

一、OK,兄弟们,接下来就来演示不安全的验证码-on client-绕过实验

 

1、来到pikachu实验平台暴力破解下的验证码绕过(on client)模块,随便输入一个账号和密码+正确/错误的验证码。看看提示我们什么(返回什么提示信息)?

2、转到burp suite,我们可以看到我们提交的表单信息。

3、接下来我们来看源码,在网页空白处右击->查看网页源代码

4、我们知道它在前端进行了验证码的生成和验证,那么他到底有没有在后端同样进行验证呢?我们将burp suite抓到的POST请求数据包发送到Repester(数据包重放)模块。

除此,我们来到实验平台的后端源码看一看(确认一下!!)

5、到此,我们基本可以肯定,在我们技术人眼里,这种在前端JS里边的验证码就是狐假虎威,假把式,我们仍然可以使用burp suite里边的暴力破解模块进行破解。对于暴力破解的选项设置和前边的"基于表单的暴力破解实验"是一样的。我就不多废话了。

★通过上边的演示实验,我们知道写在前端JS代码里边的验证码就是纸老虎,那么还有其他类型的验证码纸老虎嘛?

    当然还有啦~~

    (1)将验证码在cookie中泄露,容易被截取;

    (2)将验证码在前端源代码中泄露,容易被获取。

到此,那么我们写在后端的验证码验证就一点安全吗?好多人要崩溃了,你快别说了,刚刚说验证码生成验证流程写在后端安全,现在又说不安全~~

别急别急,验证码的生成验证流程写在后端可不是纸老虎了,只不过后端的验证码生成验证流程如果没有严谨的逻辑,那么也会被不法分子钻了空子。

★后端验证码的常见的问题有什么?

(1)验证码在后台不过期,可以在一段时间內甚至长期被使用;

(2)验证码校验不合格,逻辑出现问题;

(3)验证码设计的太过简单或者说有规律,容易被猜解。

3.3 验证码绕过(on server)

好的,接下来,我们继续演示不安全的验证码-on server-绕过实验

1、来到pikachu漏洞实验平台,打开暴力破解下的验证码绕过(on server)模块。

2、我们输入错误的用户名、密码、验证码,来到burp suite看看截取到的数据。

3、观察到截取到的数据,我们发送到Repeater模块,修改验证码的值进行数据重放。

4、我们再来看后台的源码

5、那么有人问了,你不是绕过演示嘛。怎么到现在也没有任何问题啊,别着急~~

6、我们刷新一下页面,记录出现的验证码。

7、来到burp suite下Repeater模块。执行如图片内的操作。

8、看起来也没有什么问题哈!但是,如果你修改用户名或者密码后,而验证码的值我们不改变,又有什么结果呢?

9、ok,你知道怎么一回事了嘛?!我们将数据包发送到burp suite暴力破解模块,进行破解,username和password仍然是变量,而验证码我们设置成一个刷新页面后正确的常量就好了!

★上边的问题到底是怎么回事呢?

我们来看代码

★如何解决SESSION的问题呢?

四、防范措施

4.1 措施总结:

(1)设计安全的验证码(安全的流程+复杂而又可用的图形);

(2)对认证错误的提交进行计数并给出限制,例如:连续5次输错,锁定一定时间;

(3)必要的情况下,使用双因素认证;

4.2 token防爆破?

答案是否定的!!!!!!!

我们来看:

我们说虽然每一次token值都会变化,但是由于token响应到了前台,我们在每一次尝试前可以先获得token的值,在提交。其实token对于暴力破解,是起不到防止的作用的。

我们说一般token一般在防止CSRF上会有比较好的功效。

pikachu-暴力破解漏洞解析的更多相关文章

  1. pikachu——暴力破解

    前述: 前面学习了sqli-labs 和 DVWA,也算是初步涉足了web漏洞,了解了一些web漏洞的知识.所以在pikachu上面,会更加仔细认真,把前面没有介绍到的知识点和我一边学习到的新知识再补 ...

  2. pikachu 暴力破解

    一 暴力破解 1.基于表单的暴力破解 先随意测试root/root登录,用Burp抓包,丢进Intruder 添加username和password两个参数变量,攻击类型选择Clusterbomb 有 ...

  3. 搭建pikachu平台及暴力破解

    一.先将Pikachu文件放在网站根目录下 二.修改pikachu网站的配置文件  inc/config.inc.php define('DBUSER', 'user'); define('DBPW' ...

  4. 关于暴力破解的一些学习笔记(pikachu)

    这几天的笔记都懒得发博客都写在本地了,随缘搬上来 什么是暴力破解 就是在攻击者不知道目标账号密码情况下的,对目标系统的常识性登陆 一般会采用一些工具+特定的字典 来实现高效的连续的尝试性登陆 一个有效 ...

  5. 基于表单的web暴力破解

    暴力破解 概述 连续性尝试+字典+自动化 如果一个网站没有对登录接口实施防暴力破解的措施,或者实施了不合理的措施,则该网站存在暴力破解漏洞. 是否要求用户设置了复杂的密码 是否每次认证都是用安全的验证 ...

  6. pikachs 渗透测试1-环境及暴力破解

    一.安装 PhpStudy20180211,默认安装 1.mysql默认密码是root,因为在虚拟机,保留不动 2.解压pikachs 到 C:\phpStudy\PHPTutorial\WWW\pi ...

  7. Pikachu漏洞练习平台实验——暴力破解(一)

    概述 一个有效的字典可以大大提高暴力破解的效率 比如常用的用户名/密码TOP500 脱裤后的账号密码(社工库) 根据特定的对象(比如手机.生日和银行卡号等)按照指定的规则来生成密码 暴力破解流程 确认 ...

  8. Pikachu练习平台(暴力破解)

    Pikachu练习平台(暴力破解) 因为下面要用到burp suite,这里先简单介绍一下intruder模块的东西 Target选项:        设置攻击目标,可以通过proxy发送 Pasit ...

  9. pikachu学习-暴力破解模块

    安装好XAMPP,burpsuite,配置好pikachu我们就可以进行pikachu平台的漏洞学习 我这篇博客主要写暴力破解模块讲解,它分为4个小模块,分别是“基于表单的暴力破解”,“验证码绕过(o ...

随机推荐

  1. 异数OS 星星之火(三)--异数OS-织梦师云 微服务编写入门

    . 异数OS 星星之火(三)–异数OS-织梦师云 微服务编写入门 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6 ...

  2. 团队项目——Beta冲刺

    团队项目-Beta冲刺 作业所属课程 软件工程 作业要求 团队项目-Beta冲刺 团队名称 运气王团队 作业目标 (1)SCRUM部分(2)PM 报告 成员列表: 1.团队成员的学号列表 |何宸锐(组 ...

  3. MySQL基础知识清单

    学习大纲(★为重点,√其次) 一.为什么要学习数据库 二.数据库的相关概念 DBMS.DB.SQL 三.数据库存储数据的特点 四.初始MySQL MySQL产品的介绍 MySQL产品的安装 ★ MyS ...

  4. rabbitmq使用总结

    rabbitmq 架构图 RabbitMQ 中的 broker 是指什么?cluster 又是指什么 broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 Rabb ...

  5. 2018CCPC吉林赛区(重现赛)部分题解

    The Fool 题目链接 Problem Description The Fool is numbered 0 – the number of unlimited potential –and th ...

  6. 【WPF学习】第二十八章 程序集资源

    WPF应用程序中的程序集资源与其他.NET应用程序中的程序集资源在本质上是相同的.基本概念是为项目添加文件,从而Visual studio可将其嵌入到编译过的应用程序的EXE或DLL文件中.WPF程序 ...

  7. day03_流程控制语句

    day03_流程控制语句 建议: ​ 凡是次数确定的场景多用for循环,否则用while循环. 三元运算符 ​ 由?:符号表示的,具体的含义其实就和if-else结构的含义差不多,这种运算符会将某个条 ...

  8. java中符号类型和无符号类型的问题分析

    一 参考博文 java中无符号类型的解决方案 二 java中的无符号数和有符号数 在计算机中,可以区分正负的类型,称为有符号类型,无正负的类型,称为无符号类型. 使用二进制中的最高位表示正负 计算机中 ...

  9. alert弹出窗口,点击确认后关闭页面

    alert("点击确认后,关闭页面"); window.opener=null;window.top.open('','_self','');window.close(this);

  10. OGG主从表结构不同步,出现OGG-01296错误

    一.Cause ogg的err日志出现以下报错 2019-09-10 16:36:55 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, ...