文章目录

  • 暴力破解(Brute Force)
    • 1.基于表单的暴力破解
    • 2.验证码绕过(on server)
    • 3.验证码绕过(on client)
    • 4.token(令牌)防爆破
    • 5.总结

burpsuite配置

  1. 火狐浏览器需要导入证书
  2. 如果无法抓到127.0.0.1的包,可以试试以下操作

暴力破解(Brute Force)

有效的字典:

  1. 常用的账号密码(弱口令),比如常用用户名/密码TOP 500等。
  2. 互联网上被脱库后账号密码(社工库),比如某平台泄露的用户信息。
  3. 使用指定的字符使用工具按照指定的规则进行排列组合算法生成的密码。

判断是否存在暴力破解可能性:

  1. 是否要求用户设置了复杂的密码
  2. 是否每次认证都使用安全的验证码
  3. 是否对尝试登陆的行为进行判断和限制
  4. 是否在必要的情况下采用了双因素认证

暴力破解漏洞测试流程:

  1. 确认登陆接口的脆弱性(爆破可能性)

比如:尝试登录——抓包——观察验证元素和response信息,判断是否存在爆破可能性。

  1. 对字典进行优化

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

(1)小技巧:可以先在该平台注册一个账户,观察账户和密码的格式要求,然后删除字典中不符合要求的字符串,再进行爆破,会提高效率。
(2)小技巧:如果爆破管理后台,一般系统管理员的用户名为admin/administrator/root的几率比较高,可以先尝试这三个用户名。

  1. 工具自动化操作

1.基于表单的暴力破解

使用burpsuite工具中的intruder模块进行暴力破解:intruder模块使用教程

  1. 先随便输入一个username和password

  2. 利用burpsuite进行抓包

  3. 将抓到的包导入intruder模块(在空白处右键,选择send to intruder)

  4. 选择需要暴力破解的变量和攻击方法

    从图中可以看出,intruder模块已经为我们自动筛选出了四个可以爆破的变量,因为我们只需要对username和password进行爆破,所以只要选择这两个变量即可。

    (1)点击右边的clear,删除选中的变量
    (2)再点击右边的add,将username和password选中
    (3)选择sniper攻击方式

  5. 选择payloads方式并攻击

    (1)添加弱口令
    可以去网上下载弱口令文件(因为这是练习,所以我就随便添加了几个简单的弱口令)

    (2)点击右上角start attack进行攻击

    发现当password='123456’的时候,respond数据包的长度和其他的不太一样,因此我们可以重点观察这种情况。

  6. 查看异常情况的respond数据包

    发现这种情况下,返回数据包中有个login success的字段,可以判断该种情况就是正确的账号和密码组合,因此username=‘admin’,password=‘123456’

  7. 修改数据包

    回到抓包界面,修改账号和密码,然后点击forward发送出去

    观察到网页上出现了login success,表示登陆成功。

2.验证码绕过(on server)

  1. 先随便输入一个username和password

  2. 利用burpsuite进行抓包

  3. 此时要测试该验证码会不会在服务端被及时销毁,我们先将数据包发送到重放模块(Repeater)

    保持验证码不变,通过修改几次username或者password并进行重放,发现收到的回应数据包长度一致,因此推测回应数据包都是因为同一种原因无法登录(即username或password错误,并没有因为验证码错误导致无法登录),大致可以判断尝试登陆的这几次操作,服务器端都用的同一个验证码(验证码可以重复利用),因此我们只要保证验证码不变,对username和password进行爆破就可以了。

  4. 后面的操作和第一个基本一致,就不再赘述了。(只要保证不变验证码,对username与password进行爆破即可)

3.验证码绕过(on client)

  1. 先随便输入一个username和password和正确的验证码,然后再随便输入一个username和password和错误的验证码。观察二者区别。


发现输入错误验证码时,网页弹出窗口,可以猜测是在前端生成和判断验证码,于是我们查看源码发现的确是在前端生成的验证码。

所以很有可能这个验证码并没有通过后端进行对比验证。我们对数据包进行重放,不输入验证码,发现返回数据中并没有提示“请输入验证码”,因此可以判断的确没有通过后端验证。

因此我们只需要截取数据包,然后直接进行爆破,就可以绕过前端的判断。

  1. 利用burpsuite进行抓包
  2. 发送到intruder模块进行爆破,操作方法和第一个一样。客户端验证码与服务器端验证码区别在于,如果使用服务器端验证码,我们必须保证验证码是正确的,在这个基础上进行爆破。客户端验证码就不用保证验证码的正确性了,甚至删去验证码字段进行登录也是可以的。如图所示:

4.token(令牌)防爆破

什么是token

先说下结论:token并不能防止爆破。
我们可以从它的流程中推断出来:

使用token机制的身份验证方法,在服务器端不需要存储用户的登录记录。大概的流程:

1.客户端使用用户名和密码请求登录。
2.服务端收到请求,验证用户名和密码。
3.验证成功后,服务端会生成一个token,然后把这个token发送给客户端。
4.客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。
5.客户端每次向服务端发送请求的时候都需要带上服务端发给的token。
6.服务端收到请求,然后去验证客户端请求里面带着token,如果验证成功,就向客户端返回请求的数7.据。(如果这个 Token 在服务端持久化(比如存入数据库),那它就是一个永久的身份令牌。)

第三步就存在漏洞了。

每次提交要验证token值(每次更新),表面上可以防止暴力破解,但后端每次产生的token以明文形式传到前端,漏洞就这样产生了,黑客可以在每次暴力破解之前,获取一下token值,然后填到字典里面,就可以进行暴力破解

  1. 查看网页源代码(按F12),发现里面有一个字段存储着token值
  2. 用burpsuite抓取数据包

    我们只需要暴力破解username与password,然后再获得对应的token值,一并爆破即可。

但是每次在暴力破解之前打开html找新的token再贴到burpsuite的相应位置就很麻烦,我们要考虑暴破时怎样才能带上正确的token值。我们可以利用intruder模块中配置payload为Recursive grep来对token进行递归提取。配置方法如下:

(1)首先先确定爆破变量为password 和 token

(2)然后对token变量选择负载类型为Recursive grep

(3)进入options进行配置,找到grep-extract模块,点击add,从网页源代码中选中token的位置,会自动生成正则表达式用于提取。

因为是一种递归操作,第二次爆破要依赖于第一次爆破后得到的token值,因此不能使用多线程,所以再配置一下线程。

(4)最后在为password配置一下字典,然后进行爆破即可。

5.总结

  1. 不安全的验证码- on client 常见问题

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

  2. 不安全的验证码- on server 常见问题

    (1)验证码在后台不过期,导致可以长时间被使用
    (2)验证码校验不严格,逻辑出现错误
    (3)验证码设计的太过简单和有规律,容易被猜解

  3. 防范措施

    (1)设计安全的验证码

       1.在后端对验证码进行对比判断2.判定验证码是否为空,是否正确3.判定后销毁验证码4.设置定时销毁验证码
    

    (2)对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时
    (3)必要的情况下,使用双因素认证

ctf-pikachu-暴力破解相关推荐

  1. pikachu暴力破解合集(含分析、验证与修复建议)

    pikachu 暴力破解模块合集 基于表单暴力破解 漏洞分析 漏洞验证 验证码绕过(on server) 漏洞分析 漏洞验证 验证码绕过(on client) 漏洞分析 漏洞验证 token防爆破 漏 ...

  2. pikachu暴力破解

    暴力破解通俗来说就是"撞库",是现在最流行的密码破解方式之一.它的实质就是枚举法,通过大量穷举的方式来尝试获取用户口令,即猜口令.并且暴力破解也不仅仅只用来暴力破解,也可以发现We ...

  3. pikachu 暴力破解 Brute Force(皮卡丘漏洞平台通关系列)

    目录 一.官方概述 二.小白菜的通关 第一关  基于表单的暴力破解 第二关  验证码绕过(on server) 1.绕过步骤 2.一点思考 第三关  验证码绕过(on client) 1.绕过步骤 2 ...

  4. pikachu靶场之暴力破解

    目录 一.什么是暴力破解 二.burpsuite四种攻击类型 1. sniper(狙击手模式) 2. battering ram(攻城锤模式) 3. pitchfrk(音叉模式) 4. cluster ...

  5. pikachu上的密码口令暴力破解

    文章目录 (1)暴力破解是什么 (2)暴力破解的一般防范方法 (3)前后端常见的漏洞 <0>无防护下的暴力破解 <1>前端防护的漏洞 <2>后端防护的漏洞 < ...

  6. 【CTF】CTFHub------历年真题-暴力破解/word文件本质/图片修复/数据包分析一/滴答滴答/栅栏解救/磁盘恢复

    文章目录 历年真题 暴力破解 word文件本质 图片修复 好孩子看不见 数据包分析一 滴答滴答 栅栏解救 磁盘恢复 相关知识 CTF中常见的文件头和文件尾 历年真题 暴力破解 1.下载题目附件,发现加 ...

  7. ctf训练 web安全暴力破解

    ctf训练 web安全暴力破解 暴力破解漏洞介绍 穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个情况验证符合题目的全部条件, ...

  8. Pikachu漏洞练习——暴力破解

    目录 1.实验内容 2.实验环境 3.实验结果 1)基于表单的暴力破解 2)验证码绕过(on server) 3)验证码绕过(on client) 1.实验内容 1)基于表单的暴力破解 2)验证码绕过 ...

  9. 【Pikachu】漏洞练习平台做题记录+原理解析(1)暴力破解

    前言 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞. 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意. pikach ...

  10. 使用Burpsuit简单的暴力破解pikachu

    首先配置好pikachu,运行服务! 浏览器准备 第一步:设置代理 Firfox怎么设置 1.打开firefox,输入127.0.0.1,然后初始化,点击设置手动配置http 2.打开插件,配置pro ...

最新文章

  1. pta 插入排序还是堆排序
  2. 老咸鱼今天告诉你用Python matplotlib 各种图绘制流线图,难怪老板放纵他
  3. pythin怎么根据月份获取月初和月末_数据统计丨7月份塑料市场明显回暖,8月份是否延续乐观行情?...
  4. matlab 矩阵数据生成.csv表格
  5. rgb颜色判断语句_如何判断一张照片的曝光是否准确
  6. 前端学习(1302):实现es6的转化
  7. java 纳秒 毫秒_golang的time包:秒、毫秒、纳秒时间戳输出方式
  8. python天气查询小程序加背景图_Python查询天气小程序
  9. 宿舍电源额定500w,我的电脑550w的,有什么办法能解决吗?
  10. 城市管网 GIS 数据表的存储
  11. 安装vc2005运行库错误1935c处理
  12. MATLAB插值函数interp1
  13. 笔记本开热点手机一直显示正在获取ip
  14. 分享一个冰雪复古辅助多开脚本
  15. python项目二:多种验证码及二维码输出
  16. unity3d 工程原理_Unity3D——镜面反射原理及实现(一)
  17. 物联网平台组成部分CMP、DMP、AEP、BAP
  18. 火焰检测 python
  19. 我的一年AI算法工程师成长记
  20. windowsXP命令集锦

热门文章

  1. 做自媒体视频剪辑的博主素材哪里来的?
  2. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课1.8节复习
  3. netty源码解析(三)recycler
  4. 阿里云服务器建站教程来了(十分钟网站上线)
  5. P1407 [国家集训队]稳定婚姻
  6. 计算机cad 的知识目标,计算机辅助设计CAD教案.doc
  7. js中indexOf()的使用
  8. 如何有效延长笔记本电池使用时间?
  9. Motion Matching
  10. Java根据15位或者18位身份证号计算年龄代码