使用工具:Burpsuite
LOW
配置好代理并开启burpsuite抓包;
在前端随便输入username和password;
点击Login,可以在Burpsuite中看到抓包情况;
点击Send to Intruder将抓到的包发送包Intruder模块,用于进行暴力破解
进入Intruder模块,选择攻击类型为Cluster bomb,选择username和password的参数作为爆破点;
Cluter bomb是两个字典进行交叉枚举,适用于用户名密码的破解。
设置好payload,字典可以通过网站在线字典生成,kali Linux也会自带很强大的字典;
然后点击start attack开始破解;
找到长度不同的结果,查看Response可知爆破结果。
由response结果可知爆破出的username和password为
username | password |
admin | 123456 |
pablo | letmein |
1337 | charley |
查看源码发现并没有对username和password进行过滤;
存在sql注入漏洞
故该等级还可以使用sql注入进行无密码登录;
在username框中输入admin’ #或者admin’ or ‘1’=’1就可以登录
MEDIUM
该等级下的暴力破解方法和low等级的一样;
只是比low等级多了一些sql字符的过滤。
HIGH
配置好代理并开启burpsuite抓包;
在前段随意输入username和password;
然后查看抓包情况;
看到HIGH等级下数据包中多了一个user_token参数;
token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。
当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。
还是Send to Intruder进行暴力破解;
选择password和user_token作为爆破点;
选择attack type为pitchfork;
Pitchfork – 这一模式是使用多个payload组。对于定义的位置可以使用不同的payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。比如:position中A处有a字典,B处有b字典,则a【1】将会对应b【1】进行attack处理,这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。请求的数量应该是最小的payload组中的payload数量。
在options中找到Grep-Extract;
点击Refetch response取回响应;
然后在下面代码中找到user_token,选中value字段值;点击OK;
找到Redirections设置重定向;选择Always;
然后设置payload;payload1依旧使用密码字典;
payload2选择payload type为Recursive grep;
将token的值填入下面的框中;
点击start attack开始爆破;
找到length与其他不同的包查看response;
得到了admin的密码:123456。
IMPOSSIBLE
抓包发现impossible等级下的数据包中依旧含有token;
还使用high等级的方法进行爆破;
选择length不同的包查看response;
发现用户已被锁定,15分钟后再试;
impossible无法完成破解,因为限制了登录失败的次数。
来源:freebuf.com 2020-10-12 10:54:34 by: magic24
请登录后发表评论
注册