目录

一、官方概述

二、小白菜的通关

第一关  基于表单的暴力破解

第二关  验证码绕过(on server)

1、绕过步骤

2、一点思考

第三关  验证码绕过(on client)

1、绕过步骤

2、一点思考

第四关  token防爆破?

1、绕过步骤

2、一点思考


一、官方概述

pikachu官方对暴力破解的介绍如下,我要嘲笑一下他brute拼错了(~ ̄▽ ̄)~

二、小白菜的通关

暴力破解,首先得有字典。

作为一颗小白菜,我,没有字典。。但是我知道一个下载字典的好地方,那就是大名鼎鼎的github!

在github搜索“字典”,就可以搜到好多好多字典。。然而,github上的东西常常下载不下来,或者下载非常缓慢,不能忍。。

后来发现,可以在github里找到心仪的字典之后,拿字典的名字到gitee上搜索和下载~嗖~就下载好了q(≧▽≦q)  (不过不是每个都能搜到`(*>﹏<*)′)

(其实对于这个靶场来说,没有字典也没关系,这靶场主要是教怎么绕过限制,“基于表单的暴力破解”关卡点一下提示就会告诉你有哪三个用户密码,用这几个再加几个错误的做个假字典体会下效果就好。由于用正经字典爆破组合太多,所以我就是这样做哒~)

下面就开始正式闯关吧~

第一关  基于表单的暴力破解

请出burpsuite,一边随便输入个用户名密码并观察回显,一边burpsuite抓包

把下图这个带username和password参数的报文send to intruder

然后在intruder模块这样设置

首先position选username的值和password的值,然后Attack Type选Cluster bomb(关于4种Attack Type分别是什么效果可以参见burp suite的四种 attack type(攻击类型))

接下来由于position设置了两个,Attack Type选了Cluster bomb,因此,需要两个字典,payload效果是两个字典条目的组合,数量是两个字典条目数的乘积。

按顺序,第一个字典像下图这样选simple list并把用户名字典load进来

第二个字典像下图这样选simple list并把密码字典load进来

考虑到用户名和密码有特殊字符的情况,这里把URL-encode去勾选

按start attack开始爆破,完成后结果按Length排序,果然是那三个用户名密码(排序的前三个,Length和其他都不一样的)。

第二关  验证码绕过(on server)

1、绕过步骤

首先观察一下,用户名和密码输入错误值,当验证码是错误值时,返回结果如下,提示验证码错误

用户名和密码输入错误值,当验证码是正确值时,返回结果如下,提示用户名或密码不存在

并且每次提交都会自动刷新验证码

那有没有可能,我只要不在网页上点Login,不刷新网页,网页当前显示的验证码就一直有效呢?

来试试~

把刚刚试的随便一个包send to repeater

改成当前网页显示的验证码,send,发现response中提示的是用户名或密码不存在,说明验证码是对的

还是这个验证码,把密码改一下,send,发现response中提示的还是用户名或密码不存在,说明验证码还是对的

这就说明之前的猜想是正确的,只要网页没刷新,验证码在burp suite中可以多次使用

直接从repeater中把上图的请求包send to intruder,和上一关一样配置intruder(截图如下,具体解说见上一关)

按start attack开始爆破,完成后结果按Length排序,果然是那三个用户名密码(排序的前三个,Length和其他都不一样的)。

2、一点思考

为什么会产生这种情况呢?

先看看本关的主要代码

在下图的38行也提示了,本关在验证完验证码之后没有把$_SESSION['vcode']销毁,所以才导致$_SESSION['vcode']可以被多次使用

再看一下生成$_SESSION['vcode']的代码

通过下图知道代码应该去../../inc/showvcode.php找

找到../../inc/showvcode.php之后发现就是session_start()然后调用vcodex()去生成$_SESSION['vcode']

vcodex()在function.php里面,没什么可说的,就不贴出来了。

上图这段代码里面还有个画蛇添足的步骤是把验证码作为cookie的一部分传给客户端了。。那就算验证结束有销毁步骤,其实攻击者也可以通过document.cookie获取到验证码从而实现自动化暴力破解。

chrome浏览器F12可以在Application的Cookie中看到这个验证码

第三关  验证码绕过(on client)

1、绕过步骤

还是先观察

用户名和密码输入错误值,当验证码是正确值时,返回结果如下,提示用户名或密码不存在

用户名和密码输入错误值,当验证码是错误值时,有弹框提示验证码错误,之前对用户名或密码的提示也没有清除

那根据上面两张图,特别是验证码错误时有弹框这点,非常怀疑用户名和密码是在后端验证的,但验证码是在前端验证的。

右键 查看网页源代码,发现果然前端有检验验证码的js脚本

到目前为止一切就清楚啦,既然是前端检测,那直接用burpsuite发请求报文绕过前端就可以了

把burpsuite的proxy模块抓到的这个报文send to intruder

然后按照下图配置intruder,具体解释见第一关

按start attack开始爆破,,完成后结果按Length排序,果然还是那三个用户名密码(排序的前三个,Length和其他都不一样的)。

2、一点思考

事实再次证明,任何前端的校验对于防止安全攻击都是靠不住的!

第四关  token防爆破?

1、绕过步骤

首先还是观察~这关没有验证码了,用户名或者密码输错会提示用户名或密码不存在

那既然和token有关,我们用不一样的值login两次看看burpsuite抓到的报文有啥区别?

把proxy模块抓到的两次登录的报文send to comparer对比一下,确实两次的token不一样

把proxy模块抓到的报文send to repeater,操作操作,观察一下有什么办法突破:

(1)先尝试不改动token,直接重放,response中提示  csrf token error

(2)尝试删除token,response中什么返回结果都没有

(3)虽然前面两条路死了,但是尝试的时候发现response中网页源代码有一个type为hidden,name为token的input标签,value和request报文的token不一样,应该是下一个报文的token。

那试一下把request中的token值改为response中的token值,再次send,返回了提示用户名或密码不存在,并且返回了下一次的token值(下图request中的token不是上图response中的token是因为中间又发了一个报文,导致两张图没有连上)

根据以上结果,下一次request需要携带的token就是上一次response中html代码中的隐藏字段值,也就是说request中的token是可以从上一个response中提取的

那么还是可以暴力破解,只不过配置稍微复杂一点:

首先position除了username和password再增加token,此外要注意Attack type选Pitchfork(payload一一对应,数量为最少的payload的数量)。.这里为啥要选Pitchfork而不能选Cluster bomb,尝试一下就知道了`(*>﹏<*)′(剧透:因为Cluster bomb是三组payload排列组合,一个token用好几次显然不行)

由于前面使用的用户名和密码payload列表都是适用于Cluster bomb的,而Pitchfork对payload的要求可能更高一些(需要提前整理好对应关系),所以我这里暗中把用户名和密码payload列表改了一下。

接着第一和第二个payload按照前几关那样设置

第三个payload type设置为Recursive grep

上图这个payload options是在哪里设置的呢?就是下图这里

小框框勾选上,然后点add,弹出来的窗口要是下面啥也没有就点一下Refetch response,然后找到response中的token,双击value后面的值,上面define start and end的地方就会自动生成正则表达式啦

然后点OK就行

确认上面这个设置之前我觉得保险起见应该在网页源代码里面观察一下有多少符合正则表达式的位置

从下图来看就这一个地方符合,那就妥了

此外还有一个需要注意的地方是线程要设置为1,这是因为每次都要用上次response中返回的token,多线程就会乱套了。

按start attack开始爆破,,完成后结果按Length排序,果然还是那三个用户名密码(排序的前三个,Length和其他都不一样的)。

2、一点思考

看来token对防暴破没啥用,因为总要让客户知道下一次用什么token的,因此总能被自动化工具获取。

token的存在主要还是针对CSRF的。

如有疑问欢迎留言讨论,如有错误欢迎指正

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

  1. pikachu XSS Cross-Site Scripting(皮卡丘漏洞平台通关系列)

    目录 一.听pikachu介绍xss 二.羞耻又走心的推荐 三.比较EASY的闯关 第1关 反射型xss(get) 1.阳关道 2.独木桥 3.第三种方法 第2关 反射型xss(post) 第3关 存 ...

  2. pikachu Over permission 越权(皮卡丘漏洞平台通关系列)

    目录 1.水平越权 (1)闯关 (2)原因 (3)防御 2.垂直越权 (1)闯关 (2)原因 (3)防御 3.尾声 这关也挺简单 1.水平越权 也称为横向越权,指相同权限下不同的用户可以互相访问,比如 ...

  3. pikachu File Inclusion 文件包含漏洞 (皮卡丘漏洞平台通关系列)

    目录 一.来自官方的简介 二.来自小可爱的通关步骤 第一关  File Inclusion(local) 1.读取"隐藏"文件 2.读取系统文件 3.结合文件上传getshell ...

  4. pikachu SQL注入 (皮卡丘漏洞平台通关系列)

    目录 一.官方的戏精引言 二.仙女在认真闯关 一重天 数字型注入 二重天 字符型注入 三重天 搜索型注入 四重天 xx型注入 五重天 insert/update注入 (1)insert注入 (2)up ...

  5. pikachu RCE(remote command/code execute)(远程命令执行/远程代码执行)(皮卡丘漏洞平台通关系列)

    目录 一.官方介绍 二.诚意推荐 三.悠闲通关 第1关 exec "ping" 第2关 exec "eval" 一.官方介绍 本节引用内容来源pikachu漏洞 ...

  6. pikachu XXE (XML外部实体注入)(皮卡丘漏洞平台通关系列)

    目录 一.来自官方的介绍以及来自民间的扩展 1.pikachu官方简介 2.小女子之前画的脑图 3.两个不错的博客 二.小白菜的闯关 1.查看系统文件内容 2.查看php源代码 3.爆破开放端口 三. ...

  7. pikachu Unsafe Filedownload 不安全的文件下载 (皮卡丘漏洞平台通关系列)

    这关也几乎是一步就能搞定 1.轻松过关 进入本关看到下图的页面,点击球员名字可以下载头像图片 点击之后直接下载了,没有页面跳转,地址栏的url没有变化 右键 查看网页源代码 通过球员名称快速定位到相关 ...

  8. pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)

    目录 一.client check 客户端验证 1.现象 2.绕过姿势 方法一.浏览器禁用javascript 方法二.burpsuite抓包改后缀 3.问题分析 二.MIME type 1.现象 2 ...

  9. pikachu SQL 注入(皮卡丘漏洞平台通关系列)

    一.数字型注入 目录 一.数字型注入 二.字符型注入 在burp抓包 使用reprter注入 找列数id=2 order by 2# &submit=%E6%9F%A5%E8%AF%A2,如果 ...

最新文章

  1. Unity应用架构设计(7)——IoC工厂理念先行
  2. easyUI的combobox是否可用
  3. 二分类神经网络的特征光谱---2-3至2-9
  4. Qt中rcc工具简介
  5. 344. Reverse String
  6. iis 6.0上部署.net 2.0和4.0网站
  7. OpenCV绘图和文本输出功能的实例(附完整代码)
  8. 算法设计与分析——回溯法——n皇后问题
  9. 好玩的Scratch
  10. oracle add datafile ora-01900,一卡通2.2维护手册
  11. 中国电信:张志勇辞任公司执行副总裁
  12. 该来的还是来了!视觉中国网站今日恢复上线运营
  13. 金蝶K3供应链-采购系统选项功能描述
  14. 网络系统设计综合布线方案
  15. CI520读卡芯片 软硬件兼容替换CV520
  16. ECMAScript
  17. Composer报错: require(): Failed opening required ‘.../markbaker/matrix/.../functions/adjoint.php‘
  18. 赌徒破产理论(Gambler's Ruin)
  19. 充分利用 cpu_充分利用设计学校(已更新)
  20. 高质量项目管理-甘特图模板+教程(附下载包)/ PMP项目管理可用

热门文章

  1. 编程语言的终结者:SL (smart language)
  2. MIT发布《人工智能加速器》2022年度综述论文,详解80+类AI芯片性能优劣
  3. DAS、NAS和SAN
  4. for wangwang
  5. Python 使用 cx_Oracle 教程
  6. matlab遗传算法先收敛后发散,遗传算法收敛问题
  7. [转载] 全本张广泰——第二十三回 红玉盗马褂 全家喜团聚
  8. jsp里table边框线_jsp页面中Table边框使用总结
  9. Android 自定义相机(可外接摄像头)
  10. java标识符是什么_Java 标识符