业务安全-03业务逻辑漏洞之暴力破解(Burte Force)

Posted 百事都可樂.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了业务安全-03业务逻辑漏洞之暴力破解(Burte Force)相关的知识,希望对你有一定的参考价值。

暴力破解

概述

暴力破解是一种针对于密码或身份认证的破译方法,即穷举尝试各种可能,找到突破身份认证的一种攻击方法。

暴力破解是一把双刃剑,一方面能够被恶意者使用,另一方面在计算机安全性方面却非常重要,它用于检查系统、网络或应用程序中使用的弱密码。

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

理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:

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

2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;

3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);

4.是否采用了双因素认证;

...等等。

原理

暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!

分类

由于未对登录页面进行相关的人机验证机制,如无验证码、或有验证码但验证码失效以及无登录错误次数限制等,导致攻击者可通过暴力破解获取用户登录账号和密码。口令暴力破解常有如下的分类,我们以pikachu靶场的暴力破解为例,进行讲解

基于表单的暴力破解

对于如下这种表单,无验证码机制且没有对登录次数进行限制,则可以进行暴力破解。

爆破双字段(username和password)

进入靶场我们发现共有三组用户和密码:admin/123456,pikachu/000000,test/abc123

  1. 首先,输入用户名和密码,截取数据包

  1. 发送到intruder(ctrl+i),点击positions,点击clear,选择用户名和密码字段值,点击add标记为爆破字段,因为需要爆破两个字段所以选择攻击类型(attack type)为cluster bomb(如果为单个字段的话就选择sniper)。操作步骤如下

  1. 之后再选择payloads,添加字典,payload set 1代表第一个字段用户名,然后再添加用户的字典如下📎webuser.txt

  1. 再选择第二个字段,并添加密码字典📎webpass.txt

  1. 点击开始攻击,如下

  1. 查看结果,点击lengthlength代表HTTP数据响应体的字符长度,如果登陆成功那么页面肯定是不一样的,所以数据长度也是不一样,根据这个可以判断是否登录成功

验证码(服务器生成)绕过(on server)

总所周知,验证码是服务端生成的,能暴力破解的前提是验证码失效(即不刷新)。

输入随便的用户名和密码和正确的验证码,截取数据宝发送到repeated模块,重复发几次包,看是否会显示验证码错误若不会说明验证码失效了,可进行暴力破解。

  1. 首先我们进入靶场登录用户,密码随便输,输入正确的验证码,抓包放到repeater模块

  1. 我们当把验证码字段进行删除,显示验证码不能为空,说明后端对这个验证码进行了校验

  1. 我们把正确的验证码还原,多次发送包,发现页面显示用户名或密码错误,而不是提示验证码错误,由于存在验证码失效的问题,所以可以进行暴力破解。(tips:若其验证码没有失效,则无法进行暴力破解)

  1. 之后我们将其发送到intruder模块,选择我们要爆破的参数,再添加字典即可

  1. 点击开始攻击,之后方式与基于表单的暴力破解是一样的,这里我就不加以赘述了。

验证码(前端生成)绕过(on client)

  1. 输入正确的验证码进行抓包,发现此时再修改为任意的验证码都不会提示验证码错误。可知后端并没有对验证码进行校验,此时客户端进行了校验

  1. 于是我们查看源码发现这种验证码是在客户端生成的,且直接在客户端进行校验。这种我们直接删除限制的js函数就行,或者先先通过前端校验再暴力破解。

  1. 通过源码也可以看到,我们每点一次验证码,就会调用 createcode() 生成验证码

修复方案

  • 对登录的账号口令使用js进行强加密后传输

  • 图形验证码

  • 限制错误的登录次数

以上是关于业务安全-03业务逻辑漏洞之暴力破解(Burte Force)的主要内容,如果未能解决你的问题,请参考以下文章

业务逻辑漏洞挖掘随笔身份认证篇

WEB安全--业务安全漏洞

业务安全漏洞总结

业务安全-02业务逻辑漏洞之越权操作

tomcat漏洞挖掘之暴力破解和任意文件上传

tomcat漏洞挖掘之暴力破解和任意文件上传