1. 用户名确定方法
因为一些网站登陆框,输入不存在的用户名,会提示:用户名不存在,请重新输入 (这种情况下其实就可以提一个用户名枚举的漏洞)。
我们根据该信息可以枚举用户名,如果枚举的用户名很多的话,就可以用这些用户名,批量去撞弱口令,可以大大提高爆破成功率。
1.1 用户名枚举漏洞
用户名枚举主要就是利用,输入存在用户名和不存在用户名时返回信息不同来确认。而用户名枚举,因为不是爆破同一个账号的密码,所以不容易引起系统,waf拦截还是很好用的。
而登陆页面中可以输入用户名的地方有三处:登陆框,密码找回,注册
某src注册接口:
注册接口,手机号存在会提示:用户名已存在。
用户不存在,会提示:验证码以发送。
虽然发送同一ip发起发送验证码请求过多会提示:验证码请求频繁,但是当手机号存在时依旧会提示:用户名已存在。
从而造成注册手机号枚举。
1.2 利用公开信息收集用户名
搜索引擎收集:
比如,收集高校学号信息
1 | site:*.test.edu.cn 学号 |
就能收集到很多,更进一步收集还有收集泄露的office文件,一般excel文件中比较多
1 | site:*.test.edu.cn filetype:xlsx 学号 |
企业公开信息:
最近p神在小密圈分享了一个找用户名的小技巧:
1 | 爆破弱口令的时候经常需要目标公司的员工姓名组成字典,但员工姓名字典从哪来呢? |
社交软件:
比如我们可以搜索qq群:
1 | 2020级清华大学通知群 |
编造一下加群信息,进入群的瞬间打开文件,下载所有群文件….也许有意想不到的收获.
2. 密码生成
密码生成主要使用一些小工具
2.1 pydictor
项目地址:https://github.com/LandGrey/pydictor
该工具有很多模块,其中社会工程学字典模块,可以根据用户信息针对性生成字典:python pydictor.py --sedb
设置收集到的用户名,邮箱,生日等可以针对性的生成字典。
该工具还有字典合并去重,字典编码等多种功能,也可以单独 编写扩展插件。
2.2 杂七杂八的小工具
在线字典生成网站:
https://www.bugku.com/mima/
2.3 一些小尝试
常用手段出不来,可以试试:
域名,用户名,企业名,后台名称加1-5位随机数字。
如:htgl8899,zhangsan2020
六位数字太费时间就不优先考虑了
3.存在验证码
存在验证码,验证码过弱,或者存在绕过缺陷也是可以被爆破的
3.1 验证码识别
pkavhttpfuzzer
验证码识别可以使用pkavhttpfuzzer,该工具可以识别一些特别简单的验证码
也可以使用burp插件:https://github.com/c0ny1/captcha-killer
调用第三方的打码平台接口
比如这里调用:http://www.ttshitu.com/ 的识别接口,识别效果还是不错的。不过太贵了,一般渗透测试,不至于不至于…