Pikachu靶场通关实录-暴力破解篇

0x01 简介

“暴力破解”是一种攻击手段。在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间。


0x01 基于表单的暴力破解

这种没有验证码的登录界面,破解真的只是时间的问题。高准确率的字典是很重要的, 所以说信息收集真的是很重要的一个步骤。此处为了提高效率,我将皮卡丘靶场的几个常见用户名给做成了username字典,而password字典就选用top500弱密码。


基于表单的暴力破解

掏出我们的大宝贝-burpsuite,调好攻击模式,设置好爆破变量,加载好字典文件,开搞。


基于表单的暴力破解-burpsuite1

用户名字典文件

密码字典文件

密码出来了,分别是admin/123456,test/abc123,pikachu/000000。这里密码为0的时候,返回的响应包数据长度也不一样,特意试了一下,是因为密码为0的时候,皮卡丘靶场不会有任何提示,因此跑出来的响应包长度就有三种不同的长度。


密码

0x02 验证码绕过(on server)

看到关卡标题就明白了,这一关是服务端验证码绕过,先抓个包看一下。
抓到之后发到重放模块里面发送了几次请求包,响应包的数据长度都一样的,猜测服务端并没有及时销毁验证码,因此存在验证码复用的漏洞。


验证码数据包

跑了一波果然跑出来了。


密码

0x03 验证码绕过(on client)

本地端的验证码是能在数据包中看到的,抓包试下。
结果数据包里并不能看到校验信息,原来这里跟我想的还不一样。我以为是数据包中有验证码,只要把数据包中post正文的验证码改得一致就能通过校验进行爆破了。结果靶场这里比我想象的更简单,验证码纯粹是前端JS验证,只要删除js代码或者价格数据包就能直接开搞了。


密码

0x04 token防爆破?

看到题目就知道是加入了token校验,只要每次爆破的时候把token值取出来就OK了,并不复杂。
抓个包发送到intruder模块,然后设置下每次爆破时获取token值。
intruder模块找到options选项,然后找到Grep-Extract功能,点击add新增一条数据提取规则。
然后在新窗口点击refetch response获取到响应包内容,在响应包内找到token,然后选中token值后点击OK,接下来就可以设置爆破规则了。

image.png

我们给账号密码和token处都设为变量,然后将token的payload设置为我们刚提取的token值,并且将当前数据包的token填入,爆破线程设为1,始终遵循重定向也给设置好,开搞!
变量设置

token的payload设置

线程设置为1

始终遵循重定向

本以为这样就能轻松搞定这一关,却在查看结果时发现了一个问题。因为将burpsuite设置为了Cluster bomb模式,因此在爆破时将所有出现的token值进行了笛卡尔积运算,这就导致爆破的数据量无限增加,并且正确结果也不便于我们查看。
image.png

因此,我们此处使用另外一种取token值的方法。来到project options模块的sessions功能下,找到macros并点击add来添加一条宏规则。
选中POST方法带有token值的请求包后,点击OK。
image.png

然后点击configure item进行配置。
image.png

点击add
image.png

填写参数名,注意此处的参数名必须跟表单中的参数名保持一致,选中token值然后一路点击确定。
image.png

接下来新增一条处理规则,选择仅更新token参数。此处的token参数名称为手打的,非下拉选择。
image.png

规则生效范围

设置下规则生效范围,然后就可以配置payload了。这种模式下只需要将用户名和密码添加为变量即可。
image.png

OK,成功跑出来了。


0x05 防御方法

  • 如果用户登录次数超过设置的阈值,则锁定帐号(有恶意登录锁定帐号的风险)
  • 如果某个 IP登录次数超过设置的阈值,则锁定IP
  • 增加人机验证机制
  • 验证码必须在服务器端进行校验,客户端的一切校验都是不安全的
  • 及时销毁验证码
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 暴力破解及验证码安全(逻辑漏洞) 1.暴力破解注意事项 破解前一定要有一个有效的字典(top100 top2000...
    Admin3K阅读 6,396评论 0 3
  • 写出一个网站登录的地方有那些漏洞,用自己的语言做一个总结。 1、 用户是否设置了复杂的密码 2、网站是否存在验证码...
    卿酌南烛_b805阅读 1,074评论 0 1
  • 暴力破解&暴力破解漏洞概述 暴力破解连续性尝试 + 字典 + 自动化 字典 一个有效的字典,可以大大的提高暴力破解...
    sunnnnnnnnnny阅读 777评论 0 1
  • 一、爆破原理 顾名思义,暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为...
    Jewel591阅读 11,277评论 4 7
  • 0x01如何判断存在暴力破解? 1.确定登录接口的脆弱性 例如尝试登录→抓包→分析观察验证元素和respons...
    21adc3a3fb75阅读 482评论 0 0