一.暴力破解概念
所谓“暴力破解” 就是用穷举法来算,也就是说从键盘上的字母和数字一个一个的试直到找到正确的密码。它的数量可以是100个,1000个,上亿个密码来尝试登陆你的账号和密码,在没有安全意识下,用户的密码是很容易被破解的。
哪我们如何防护了??
1.设置密码时,大小写混合加数字和符号,并且足够长,这样别人爆破两年可能都爆破不出来。
2.在用户提交请求处添加验证码,并且验证码使用一次就失效,否则存在绕过。
3.不随意在不安全的网站或软件登录密码,因为那可能是钓鱼。
二.burp爆破
我们以第一皮卡丘靶场的第一关为列
正确流程如下:
1.打开代理提交登陆的参数
2.发送到intrude模块
3.吧原来的clear掉,然后选择需要爆破的位置点击add
再选择字典,方式有如下4种
sniper:只能用一个字典(爆破一个参数),添加两个也没用
Battering ram:只能用一个字典(爆破多个参数),用一个字典先爆破第一个参数,再爆破其他参数
Pitchfork:可以使用多个字典,字典交叉爆破,相互使用
Cluster bomb:可以使用多个字典,字典互不干扰自己爆破自己的
常选用思路:爆破一个参数则使用第一个,爆破多个参数使用第四个,这样可以互不干扰,当然你也可以选择相互使用
点击payloads 选择字典
我们选择 Runtime file
在点击select file 选择一个爆破的字典
选择第2个字典
步骤和第一个一样
开始攻击
观察响应
length长度与其他不同时则爆破出了密码
三.暴力破解演练
1.—on client(通过前端的验证码)
这里我们以此关为例
首先我们发现此关有验证码认证,不要怕
按 f12 查看源代码,发现验证码是前端js所写
前端js所写我们是否可以绕过了????
答案:完全可以。
方法一:
我们在抓包之前,去点击options,勾选remove all JavaScript
这样抓包以后就去掉了js代码,js也就失效了
方法二:
直接无视他的验证码
抓包以后使用原来的验证码
一样可以爆破出来
2.—on server(通过服务端的验证码)
我们输入任意账户密码和验证码点击提交
发送到repeater重放攻击
可以看到服务器返回验证码输入错误
输入正确验证码
服务器返回账户密码错误
再次输入错误密码
如下图解释
返回账户密码错误,并没有返回验证码错误,
验证码可以多次利用,
也就代表服务端并没有对验证码做严格的处理.
服务端应该做到,使用一次验证码立刻销毁验证码,如果不销毁,依然可以被攻击者利用
所以我们可以直接输入任意账户和密码,以及图中的验证码,
和上面类似,无视验证码,输入一个然后抓包及可
可以看到一样成功
3.小技巧
就光靠length来辨别正确账户和密码可能无法满足我们的需求,哪我们可以使用什么方法啦?
我们以dvwa为列:
登陆时发现输入密码错误则会提示错误
截断后如下图操作,并且勾上图中的flag result 。。。。,这里我忘记勾了,大家一定要勾上
他的意思就是,添加一栏标题,并且当他出现时就勾上,反之不出现代表密码正确了,所以就不勾上,所以password就是密码。
作用:可以帮助我们更方便找到密码
4.base64绕过
当我们发觉截断以后的编码方式是
如下:
则代表用户输入的参数被base64加密了
所以我们要让我们的字典也加密方可爆破
1.点击intruder中的payloads
2.找到payload processing
3.并且选择如下操作
则代表将我们的字典加密为base64
则可以爆破
可以看到,爆破时都是加密的
假如我们爆破出来密码
我们点击进去
然后右键
然后点击图中的圈出来的部位
则有一个base64解密,则可以吧密码解密出来