菜某总结,欢迎指正错误进行补充
暴力破解实际就是疯狂的输入密码进行尝试登录,针对有的人喜欢用一些个人信息当做密码,有的人喜欢用一些很简单的低强度密码,我们就可以针对性的生成一个字典,用脚本或者工具挨个去尝试登录。
所以密码要是太复杂时间就会很长。
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,到时候他要是没改密码的话直接就进去了。
可能我们经常登录那种大型网站习惯了,感觉好像这些条件很多都不满足,但是如果用语法搜一下那些公司的小型服务网站,就会发现很多网站的页面都是满足上述条件的。
写文章的时候就找到了几个,有一个还爆破成功了。
(因为涉嫌进去的风险我就不拿真网站做案例了。。。。)
我当年记得笔记我直接粘贴过来了
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就行了