暴力破解产生是由于服务器没有对接收的参数进行限制,导致攻击者可以通过暴力手段进行破解所需要的信息(如账号,密码,验证码等)
暴力破解的原理就是穷举法,其基本思想是根据部分条件确定已知条件的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕
0xx1 暴力破解分类
1. B/S架构
B/S架构即浏览器/服务器结构(以WEB应用为例)
a) 一般目标为后台管理员页面
b) 对B/S架构进行破解常用BurpSuite等工具
2. C/S架构
C/S架构即客户端/服务器结构(以数据库为例)
a) 数据库一般都有最高权限账户,如MySQL的root账户,Oracle的System账户
b) 对C/S架构进行破解常用Hydra,,Medusa等工具
0xx2 暴力破解前提:
1. B/S架构
a) 前端
i. 页面存在明文传输并且未加密
ii. 页面无验证码或验证码可绕过
b) 后台
i. 未对用户登录次数进行限制
c) 用户
i. 密码过于简单
2. C/S架构
a) 密码过于简单
b) 没有登录失败锁定策略
0xx2 暴力破解方式
1. B/S架构
a) 首先,将BurpSuite抓到的包发送到Intruder模块
b) 在Positions选项卡中配置爆破方式以及爆破位置
c) 在Payload选项卡中设置Payload并添加字典
d) 通过综合对比Status和Length来确定是否爆破成功
2. C/S架构
a) hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvVd46] [service://server[:PORT][/OPT]]
b) medusa [-h 主机| -H 文件] [-u 用户名| -U 文件] [-p 密码| -P 文件] [-C 文件] -M 模块[OPT]
0xx3 暴力破解参数
1. BurpSuite
2. Medusa
3. Hydra
0xx4 暴力破解思路
1. 可以对动态验证码进行爆破,使用验证码(手机或邮箱等)登录其他人账号或注册账号
2. 可以从密码找回处探测可能存在的用户名,从而进行密码爆破
3. 当存在限制登录次数时,可以使用多个用户名和密码交叉爆破进行登录
4. 可以使用弱密码(包括但不限于弱口令)撞用户名进行登录
0xx5 防止暴力破解
1. 前端
a) 不使用明文传输
b) 对传输内容进行加密(包括,但不限于账号,密码,验证码等)
c) 使用高级验证码进行登录验证(比如图形验证码)
2. 后台
a) 对用户输入错误密码次数进行限制
b) 对尝试多次登录并且登录失败的IP进行封禁
3. 用户
a) 不使用弱口令密码