这几天的笔记都懒得发博客都写在本地了,随缘搬上来

什么是暴力破解

就是在攻击者不知道目标账号密码情况下的,对目标系统的常识性登陆

一般会采用一些工具+特定的字典 来实现高效的连续的尝试性登陆

一个有效的字典,可以大大提高暴力破解的效率

à常用的账号密码(弱口令),比如常用用户名/密码top 500等

à社工库

à使用指定的工具来生成字典

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

1. 是否要求用户设置了复杂的密码

2. 是否每次认证都使用安全的验证码

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

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

5. …等等

暴力破解漏洞测试流程

  1. 确认登陆接口的脆弱性,尝试登陆---抓包---观察验证元素和返回的信息,判断是否存在被暴力破解的可能,例如测试是否有连续登陆几次就要过一段时间登陆的风控规则。或者查看报错是返回”账号或密码错误”还是返回”密码错误”来判断自己的用户名是否猜对了。
  2. 对字典的优化,根据实际情况对字典进行优化,可以先自己注册一个账号,看看网站对账号密码的需求,再筛选出合适的密码做成字典,提高爆破的效率
  3. 工具的自动化操作,配置自动化工具,比如线程,超时时间,重试次数等,进行自动化的操作

针对pikachu靶场的基于表单的暴力破解

随便传一个值进行抓包

发到爆破模块

选择Cluster bomb的攻击方式

选择username和password两个参数

配置好payload

就可以开始爆破,

还有一个地方值得注意

这里可以判断你请求的页面是否返回了这个list里面的内容

这样我们可以把登陆时账号或密码的错误提示放到这里面

这样在我们大量重发的时候就可以根据有没有返回到这个错误来判断账号密码是否爆破成功

例如

当我们密码输出错误的时候会弹出这样的错误信息

我们就可以把这个错误信息放到Grep-Match里面

我们再次进行爆破试试看

这里就会多出一列来判断是否返回了你设置的信息,这算一个小技巧吧

当然也可以用length来进行判断

暴力破解的防范与绕过

验证码的认证流程:

  1. 打开登陆页面,向后台发送一个请求,当后台收到请求以后,会调用一个生成验证码的函数去生成一个验证码,回到前端变成一个图片返回给你,同时将函数生成的值存到session中。
  2. 用户输入账号密码验证码提交的时候,后台对提交的验证码与session中的进行比较
  1. 如果验证成功就会提示你成功,如果验证失败就提示失败,然后后台会将现在的验证码销毁,验证码一定是要一次一用的。
  1. 后台一般也会对验证码设置一个超时时间,如果超过规定的比如一分钟,没有从前端获取到验证码信息,那就需要重新获取一次验证码。

绕过服务端的验证码验证

首先先踩点

当全部都是错的时候

会返回验证码输入错误

当验证码输入正确的时候,那就会返回用户名或密码错误

抓包

在我们的登陆页面刷新一个新的验证码

把新的验证码替换到我们抓的包里

发现服务端返回的是用户名或者密码错误,这说明了,我们的验证码起作用了,那么就可以放到爆破模块中进行爆破

这样就爆破成功了

源码内应该在后面一行保证验证码一次一用的原则

绕过客户端的验证码验证

验证码直接在前端的js进行生成

那我们可以先通过前端的验证,再用bp后端发包,这样就可以绕过前端的js验证

抓到包以后放到重发器中,换了账号密码再发一次,

发现这里只在前端做了验证并没有再在后端再做一次验证,这样又可以爆破了,爆破的过程就不再演示了。。

token能防爆破吗

答案是不能的

在前端我们看到了token

我们只要写个脚本获取到每次刷新了页面的token,再进行重发,这样token就形同虚设

关于暴力破解的一些学习笔记(pikachu)的更多相关文章

  1. XSS跨站脚本攻击学习笔记(pikachu)

    颓废了几天,该好好努力了. XSS概述 XSS漏洞是web漏洞中危害较大的漏洞,是一种发生在web前端的漏洞,所以危害的对象也主要是前端用户,XSS可以用来进行钓鱼攻击,前端js挖矿,获取用户cook ...

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

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

  3. 学习笔记:暴力破解WIFI小软件

    小弟 自己的学习笔记,做练习的 ,缺陷还很多,做到无法解决速度问题就不想做下去了,如果要看的话 主要是思路问题,获取句柄,控制句柄而已,代码比较简单.大神勿喷啊 破解DEMO源码:http://dow ...

  4. pikachu——暴力破解

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

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

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

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

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

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

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

  8. DVWA-暴力破解学习笔记

    DVWA-暴力破解 1.暴力破解 2.burp安装证书 3.万能密码 一.暴力破解 burp四种暴力破解类型: sniper   一个字典,两个参数,先匹配第一项再匹配第二项 Battering ra ...

  9. 【Linux笔记】阿里云服务器被暴力破解

    一.关于暴力破解 前几天新购进了一台阿里云服务器,使用过程中时常会收到“主机被暴力破解”的警告,警告信息如下: 云盾用户您好!您的主机:... 正在被暴力破解,系统已自动启动破解保护.详情请登录htt ...

随机推荐

  1. JavaScript登录记住密码操作

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  2. Let‘s play computer game(最短路 + dfs找出所有确定长度的最短路)

    Let's play computer game Description xxxxxxxxx在疫情期间迷上了一款游戏,这个游戏一共有nnn个地点(编号为1--n1--n1--n),他每次从一个地点移动 ...

  3. C - Can you solve this equation? HDU - 2199(二分水题)

    Now,given the equation 8x^4 + 7x^3 + 2x^2 + 3x + 6 == Y,can you find its solution between 0 and 100; ...

  4. 最大子矩阵hdu1559(二维前缀和)

    最大子矩阵hdu1559 Problem Description 给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大. Input 输入数据的第一行为一个正整数T,表示有 ...

  5. Vue里面提供的三大类钩子及两种函数

    在路由跳转的时候,我们需要一些权限判断或者其他操作.这个时候就需要使用路由的钩子函数. 定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数. 总体来讲vue里面提供了三大类钩子 ...

  6. new FileReader()

    一.调用FileReader对象的方法 方法名 参数 描述abort none 中断读取readAsBinaryString file 将文件读取为二进制码readAsDataURL file 将文件 ...

  7. Go 开发环境搭建和代码调试

    写这篇笔记的目的,主要是分享我在Go学习中遇到的坑.让后面的学习者能否参考有用的经验. 其中有一些小技巧,对初学者来说,可能会大大节约填坑的时间. 比如如何设置vscode的Go调试器,Go的语法高亮 ...

  8. 用人话告诉小白:什么是项目管理(例如Maven),什么是调试工具(即debugger),什么是编译(即compile)

    项目管理 以java程序的项目管理软件Maven为例,java程序根据代码的不同需要不同的jar文件才能编译运行. 人物:两个程序员A和B 物品:一个java程序G,许多jar文件 场景:当A在自己电 ...

  9. 7.1 java 类、(成员)变量、(成员)方法

    /* * 面向对象思想: * 面向对象是基于面向过程的编程思想. * * 面向过程:强调的是每一个功能的步骤 * 面向对象:强调的是对象,然后由对象去调用功能 * * 面向对象的思想特点: * A:是 ...

  10. 武汉加油!(Python版)

    #武汉加油!import turtle as tt.pensize(20)t.pencolor("blue")t.setup(1700, 600) t.penup()#-t.got ...