前言
菜某总结,欢迎指正错误进行补充
密码暴力破解原理
暴力破解实际就是疯狂的输入密码进行尝试登录,针对有的人喜欢用一些个人信息当做密码,有的人喜欢用一些很简单的低强度密码,我们就可以针对性的生成一个字典,用脚本或者工具挨个去尝试登录。
所以密码要是太复杂时间就会很长。
密码可以被暴力破解的前提
1.没安装waf,或者安装了waf没有开启流量拦截
2.没有规定输入密码多少次后无法继续输入
3.没有验证码,或者验证码生成在数据包中与输入的验证码进行比对。
4.判定输入密码次数等是根据数据包中的ip等判定,我们就可以用字典变换ip去绕过
暴力破解的一些思路技巧
1.先通过注册界面,判定账号密码的输入格式和长度,避免一些无用功
2.优先通过社工等,收集一些个人信息,(我觉得如果你问问,百分之70的人身边一定有人喜欢用跟自己的信息有关的密码,我身边就不少,甚至盲猜出来了室友的QQ号)优先用一些信息作为字典,去跑这些字典。
3.判断一下他的验证码,很多小网站的验证码压根是个摆设,仔细回想一下,是不是遇见过那些输错了密码提示密码错误,而且验证码确没有变的情况。
4.爆破前,先抓包,判断一下有没有token或者验证码直接出现在了在数据包中,只要跟数据包中一致就算验证成功。
5.判断他有没有限制次数,有的话有心去判断一下他是判断的ip呀还是什么的去绕一绕试试,实在不行下一个网站得了。
6.如果是用burp进行爆破的话需要看一下数据包中的密码是不是加密了,一般https的都会加密,这时就不能直接把字典输入进去了,需要加一下密再执行。
7.要是没啥限制条件,干脆直接写个脚本爆破算了,从0开始爆破,让他跑个一周半月一年的,反正早晚都能干出来,多开俩线程啥的,当个挂机游戏吧。
8.默认密码,无密码。都是有的。phpstudy的mysql数据库就是默认账号root密码root,到时候他要是没改密码的话直接就进去了。
可能我们经常登录那种大型网站习惯了,感觉好像这些条件很多都不满足,但是如果用语法搜一下那些公司的小型服务网站,就会发现很多网站的页面都是满足上述条件的。
写文章的时候就找到了几个,有一个还爆破成功了。
(因为涉嫌进去的风险我就不拿真网站做案例了。。。。)
burp的intruder功能总结
我当年记得笔记我直接粘贴过来了
intruder密码爆破
攻击模式
1.sniper狙击手模式
把字典挨个往目标中带入
2.battering ram攻城锤
在多个位置放入相同的攻击载荷
3.pitchfork草叉
两组载荷,一一对应的带入。
如果一组载荷多于另一组,无法对应则停止。
4.cluster bomb集束炸弹
交叉匹配,挨个载荷全都对应
加密模式
根据需求选上就行了
案例演示
这里用pikachu靶场进行演示
这时输入正确密码时的数据包
用户名admin,密码123456。
发送后会提示登陆成功
好那么我们开始密码爆破
这里使用burp进行密码爆破,其实有些特殊的需求也可以写代码有针对性的进行爆破。
首先我们看账号和密码都是明文的,没有被加密过。
那么我们直接在password这里进行字典爆破就可以了。
随便输入个密码给他发到爆破模块
intruder模块
绿色的标识就是进行字典替换的位置
我们先删除,再选中password的位置进行字典的替换。
之后选择狙击手模式进行爆破
当然这里我为了节省时间字典很少,如果你执意要破解弱口令的密码,可以直接狠狠地从他要求的最小长度开始替换,就是花费时间
这里得出结果
用长度进行排序,可以看到不输入,和123456的时候返回长度不相同
那么密码就是123456
加密情况
当然,像大部分的https以及部分的http都是加密的数据包,我们就不能这样直接发送明文的数据,必须要把他加密成相应的格式才可以。
有的加密是常见且可破解的,如md5,我们可以用burp自动加密成md5的形式。
选上发送的就是加密后的数据了
一些形同虚设的防范方法绕过
1.验证码输错之后他不变,那人工输上就可以不管他了
2.限制次数,但是根据ip限制,那固定改数据包ip就行了