暴力破解的一些学习概述

暴力破解=连续性尝试+字典+自动化

其实就是瞎猜,但是一个有效的字典会大大提高破解的效率

  • 常用的账号密码(弱口令),比如常见的用户名/密码top100
  • 互联网上被脱裤的账号密码
  • 使用指定的字符使用工具按照指定的规则进行排列组合算法生成的密码

    Burte Force(暴力破解)概述

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

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

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

2.是否每次认证都使用安全的验证码或者手机otp;

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

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

如果一个网站没有对登陆接口实施了防暴力破解的措施,或者实施了不合理的措施,就可以称该网站存在暴力破解的相关漏洞,但暴力破解的成功率并不是百分之一百(你的计算机是天河一号当我没说,你牛逼),所以有些网站管理员会忽视其网站的暴力破解漏洞,因为经过各种限制后,通过爆破所花费的时间成本已经远远大于了我们所能承受的

爆破的测试流程

  1. 确认登陆接口的脆弱性:
    确认目标是否存在漏洞(即存在的可能性)比如:尝试登陆—抓包,观察相关验证元素和response信息,判断是否存在可能

  2. 对字典进行优化:
    根据实际情况对字典进行优化,提高爆破的效率

  3. 工具自动化操作

配置相关的自动化工具(比如线程,超时时间,重试次数)

字典的优化过程

  • 技巧一:

    对目标站点进行注册,获取账号密码的一些限制,比如该站点要求密码必须6位以上,字母数字组合,则有根据要求优化字典
    
  • 技巧二:
    如果爆破的是后台,往往管理员账号比较具有特殊性,比如admin/administrator/root,可以使用这三个账号+任意密码尝试登陆,查看返回的结果,确认用户名

比如:

  • 输入xxx/aaa返回“用户名或密码错误”
  • 输入admin/bbb返回“密码错误”,则可以确认用户名为admin
    根据以上流程就可以只对密码进行爆破,提高效率。