【个人笔记】暴力破解 Brute force(暴力破解攻击、不安全的验证码问题、暴力破解防御、token防御暴力破解无意义)
暴力破解 Brute force
brute
-
n. 残酷的人,暴君;令人不快的人;麻木不仁的人;大野兽,牲畜;笨重难看的东西,麻烦事
-
adj. 蛮干不动脑筋的;根本而令人不快的,赤裸裸的;不理智的,野兽似的;严酷的;基本的;不可避免的;纯粹的,绝对的
force
-
n. 力量;武力;军队;魄力
-
-
n. (Force)人名;(意)福尔切;(英、法)福斯
暴力破解攻击与防御
暴力破解攻击
暴力破解攻击概述
暴力破解攻击:连续性尝试 + 字典 + 自动化
-
连续性尝试:穷举法
-
字典
-
常用账号密码(弱口令)
-
被脱库后的账号密码(社工库)
-
算法生成:使用指定的字符通过工具按照指定的规则进行排列组合算法生成的密码
-
-
自动化
-
自动化生成字典
-
自动化穷举尝试
-
线程、超时时间、重试次数等配置自动化工具
-
暴力破解攻击流程
攻击/测试流程
-
确认登陆接口的脆弱性
-
对字典进行优化
-
工具自动化操作
确认脆弱性
-
确认目标是否存在暴力破解的漏洞。(确认被暴力破解的“可能性”)
-
比如:尝试登陆—抓包—观察验证元素和response信息,判断是否存在被暴力破解的可能
优化字典
-
注册。根据注册信息来优化字典。确定账号密码的限制、范围等。
-
admin/root/administrator。若爆破管理后台,可使用以上账号+随便的密码,通过尝试登录观看返回结果以确定用户名。
-
信息收集。对所要爆破的目标进行信息收集,以此来形成字典。
工具自动化
工具名称 | 工具类型 | 工具作用 |
---|---|---|
Burp suite | 多功能 | 确定是否存在暴力破解漏洞、进行暴力破解(4个“武器”)、编码 |
wpscan | 扫描、爆破 | 通过对目标进行扫描来获取可能的账号密码、进行爆破 |
cewl | 生成字典 | 将扫描出来的内容做成字典 |
wordlist | 字典 | 存账号密码的文件,类似与仓库 |
…… | …… | …… |
类似的工具很多,多了解多使用多记录,同时要有几个自己擅长的工具
不安全的验证码问题
On Client
-
使用前端JavaScript实现的验证码。
-
将验证码在cookie中泄露,容易被获取。
-
将验证码在前端代码中泄露,容易被获取。
On Server
-
验证码在后台不过期,导致可以长期被使用。
-
验证码校验不严格,逻辑出现问题。
-
验证码设计的过于简单和有规律,容易被猜出。
暴力破解防御
防范措施
-
用户设置复杂密码
-
设计安全的验证码进行认证登录:安全的流程+复杂而又可用的图像。
-
登录行为的判断和限制。比如错误5次,锁定1天。
-
双因素身份认证
-
提高破解成本。对目标进行暴力破解需花费10元,而成功破解后的结果只值5元。
token防御
token 令牌
-
token值输出在前端源码中,容易被获取,因此token防御暴力破解无意义!
-
token对于防止CSRF有较好的功效。(Cross Site Request Forgery, 跨站域请求伪造)
token防御的原理(一般做法)
-
将token以"type='hidden'"的形式输出在表单中(在前端是被隐藏的),
-