pikachu平台,暴力破解的原理与测试

 

一、暴力破解的概述:

暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。

pikachu平台,暴力破解的原理与测试_第1张图片

二、暴力破解的原理与测试:

针对于系统信息安全的各种认证形式,暴力破解可分为以下几种类型:

1.基于表单型:

即前端的认证形式为“用户名”,“密码”两种认证因素。

pikachu平台,暴力破解的原理与测试_第2张图片

先尝试一次登录,可随机输入一次用户名密码。

pikachu平台,暴力破解的原理与测试_第3张图片

若认证错误会返回“username or password is not exists~”,即用户名密码错误,则进入Burp Suite进行抓包。

pikachu平台,暴力破解的原理与测试_第4张图片

将抓包发送到“intruder”选项,通过右边的选键选定需要破解的用户名密码。

pikachu平台,暴力破解的原理与测试_第5张图片

pikachu平台,暴力破解的原理与测试_第6张图片

选定好后如下,再进入“payload”选项。

pikachu平台,暴力破解的原理与测试_第7张图片

设置准备好的字典以及破解方式开始爆破。

pikachu平台,暴力破解的原理与测试_第8张图片

爆破后可根据字符串排列得到破解成功的一组用户名密码。

pikachu平台,暴力破解的原理与测试_第9张图片

基于表单的暴力破解测试完成。

 

2.验证码绕过型:

“验证码绕过”就是利用验证码认证的漏洞,无视或利用验证码从而再次达到暴力破解的方法,有以下两类:

①on-server:

根据前端显示的验证码,利用其验证码“不过期问题”,“逻辑过于简单”等问题,从而进行爆破的方法。

pikachu平台,暴力破解的原理与测试_第10张图片

先随机输入一次用户名,密码以及正确的验证码,在Burp Suite中进行抓包。

pikachu平台,暴力破解的原理与测试_第11张图片

记住当前的验证码,先猜想该验证码是否过期。

可进入Burp Suite代理选项的历史记录中,将抓包发送到“repeater”选项中,可进行以下操作:

pikachu平台,暴力破解的原理与测试_第12张图片

再次运行之前错误的用户名,密码,与验证码,翻看返回的源代码,查看返回的语句;

pikachu平台,暴力破解的原理与测试_第13张图片

仅修改正确的验证码,用户名密码不变,运行后翻看返回的源代码,查看返回的语句;

pikachu平台,暴力破解的原理与测试_第14张图片

修改一次用户名密码,验证码不变,运行后翻看返回的源代码,查看返回的语句。

pikachu平台,暴力破解的原理与测试_第15张图片

对比发现,后两次均返回“username or password is not exists~”,即表示两次运行的验证码均有效,可猜想该验证码可一直使用,所以,将抓包发送到“intruder”中进行爆破实验来证明猜想。

pikachu平台,暴力破解的原理与测试_第16张图片

设置好字典与爆破类型,验证码部分仍用之前有效的验证码进行爆破。

pikachu平台,暴力破解的原理与测试_第17张图片

pikachu平台,暴力破解的原理与测试_第18张图片

爆破完毕,猜想正确。

pikachu平台,暴力破解的原理与测试_第19张图片

以上可证明,可从前端获取验证码后,进行暴力破解。

 

②on-client:

根据后端运行可无视验证码,达到暴力破解的方法。

pikachu平台,暴力破解的原理与测试_第20张图片

先输入一组用户名密码,即正确的验证码,从Burp Suite中获取抓包。

pikachu平台,暴力破解的原理与测试_第21张图片

从历史记录中发送给“repeater”选项中。

pikachu平台,暴力破解的原理与测试_第22张图片

先将验证码部分的数据清空,翻看其返回的源代码,查看返回的语句。

pikachu平台,暴力破解的原理与测试_第23张图片

再输入错误验证码,运行,翻看其返回的源代码,查看返回的语句。

pikachu平台,暴力破解的原理与测试_第24张图片

发现,无论验证码错误或未填,均显示“username or password is not exists~”,即可猜想在后端可无视验证码直接进行暴力破解,所以,将抓包发送到“intruder”选项进行爆破实验来证明猜想。

pikachu平台,暴力破解的原理与测试_第25张图片

pikachu平台,暴力破解的原理与测试_第26张图片

爆破完毕,猜想正确。

pikachu平台,暴力破解的原理与测试_第27张图片

以上证明,可从后端绕过验证码进行暴力破解。

 

三、关于token的理解:

token一般在提交信息认证的同时一起提交,并在后台对其进行校验,从而起到防暴力破解的作用,但是若token值输出在前端的源码中,则容易被获取,从而失去防止暴力破解的意义。

先进入pikachu靶场,点击浏览器选项,找到开发者选项,点击选择器,选中用户名密码的范围,在查看器中可看到token的输出值,以及其数据类型。

pikachu平台,暴力破解的原理与测试_第28张图片

刷新后可发现,每次的token值都不一样,可查看pikachu的后端代码。

pikachu平台,暴力破解的原理与测试_第29张图片

pikachu平台,暴力破解的原理与测试_第30张图片

该代码会先判断有没有提交用户名密码,随后会对比一起上交的token值与SESSION中的token值是否一致,
若不一致,其不会验证用户名密码。

pikachu平台,暴力破解的原理与测试_第31张图片

当用户请求某个页面的时候,会执行“set_token()”这个函数,如下:

pikachu平台,暴力破解的原理与测试_第32张图片
所以每次刷新之后,该函数生成的token值都会显示在如下图的“input”语句中,从而实现
token用户名密码一起上交到后端进行验证。

pikachu平台,暴力破解的原理与测试_第33张图片

但是由于认证之前,token值已经可以被获取到,所以可以通过相关工具进行获取,所以其
失去了防止暴力破解的意义。

 

到此,暴力破解的学习内容完成。

pikachu平台,暴力破解的原理与测试_第34张图片

 

 

 

 

 

 

你可能感兴趣的:(信息安全)