pikachu
- 一、靶场介绍
- 二、Burte Force(暴力破解)概述
- 三、基于表单的暴力破解
- 四、验证码绕过(on client)
- 五、验证码绕过(on server)
- 六、token防爆破?
一、靶场介绍
靶场搭建: https://blog.csdn.net/weixin_63172698/article/details/131498908?spm=1001.2014.3001.5502
工具burp使用安装: https://blog.csdn.net/weixin_63172698/article/details/132146370?spm=1001.2014.3001.5502
同时,我们来说明下今天讲解暴力破解漏洞。
二、Burte Force(暴力破解)概述
“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:
1.是否要求用户设置复杂的密码;
2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;
3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
4.是否采用了双因素认证;
…等等。
千万不要小看暴力破解漏洞,往往这种简单粗暴的攻击方式带来的效果是超出预期的!
三、基于表单的暴力破解
测试工具:burpsuite
详细内容见:https://blog.csdn.net/weixin_63172698/article/details/132601765?spm=1001.2014.3001.5502
首先我们进行尝试性登陆:这里账号可以点击提示一下进行查看:
这里进行输入错误密码进行尝试:
可以看到显示账号或者密码不存在。
紧接着我们可以使用burp以及对应浏览器进行抓包测试:
这里浏览器使用的代理已经配置完毕,这里必须使用burp进行代理:
代理配置完毕之后我们可以访问pikachu靶场之后,登陆用户名以及错误密码进行抓包:
提前将拦截打开:
可以看到这里已经抓取到了数据包,紧接着我们发送到intruder模块中进行测试:
其实这里我们直接进行放通之后可以看到这里是登陆失败的:
然后我们在intruder模块中进行查看:
首先我们进行清除所有变量:
紧接着我们选中密码为变量进行暴力破解:
这里由于我们知道账号,所以就不用将账号也列为变量进行破解,一般情况下都是知道账号之后进行破解,当然我们也可以添加账号为变量在字典中需包含账号进行破解。
在Payloads中配置字典,这里可以手动输入添加,也可以在系统中添加已经写好的字典。
点击导入:
添加之前准备好的字典:
直接点击开始攻击即可:
这里我们直接看长度进行分析测试即可:
可以看到密码为123456。
此时关闭拦截进行登陆测试即可:
此时可以看到登陆成功。
四、验证码绕过(on client)
我们可以登陆进行测试下,这里输入错误密码可以看到账户或者密码不存在。
而这里:我们首先看下网页源代码:
查看源码,我们可以发现验证码是JavaScript随机生成,点击一次函数运行一次生成一个相应的验证码,也就是验证码是假的,用来唬人的。我们也可以将抓到的包转发到repeater进行测试,对验证码进行判定,来看下后台是否进行校验。
这里我们可以看到并未对验证码进行校验,所以我们可以直接将PHPSESSID删掉或者是选用Cluster bomb模式修改变量。
这里我们删除之后直接进行攻击,可以根据长度判断出密码为123456。
接下来我们就可以进行测试,关闭burp的拦截:
即可登陆成功。
五、验证码绕过(on server)
首先我们进行登陆测试,输入账号以及错误密码进行尝试登陆并抓包:
发送到repeater模块进行测试:
第一步:直接发送可以看到,账号或者密码不存在
第二步:删除验证码,看是否进行验证码校验,可以看到显示验证码不能为空,说明进行验证码校验。
第三步:输入错误验证码进行测试:
此时,我们已经了解到要进行验证码校验比对,但是,我们还需要对验证码是否在后台过期进行进一步验证。所以,我们这里刷新验证码,之前记得关闭burp的拦截。
这里我们直接在repeater模块上更换掉,可以看出验证码可以重复使用。
那么我们就可以直接发送到intruder模块进行穷举清空变量并设置密码为变量,导入字典直接进行攻击即可。
根据长度即可看到密码为123456.
下一步就是关闭burp拦截进行尝试登陆:
即可登陆成功。
六、token防爆破?
有的网站后台存在 token 值,这个 token 通俗的名字叫令牌,每次刷新页面都会随机变化。提交请求时必须携带这个 token 值,可以利用这点避免后台进行直接穷举和防止 csrf 攻击。
此实验可参考https://blog.csdn.net/weixin_63172698/article/details/132601765?spm=1001.2014.3001.5502有 token 防御的网站后台穷举破解密码
这里我们在之后CSRF漏洞章节进行讲解。
本篇就是暴力破解章节的内容,下面列举下暴力破解常见的防范措施有哪些?
- 1.强密码策略:使用复杂、难以猜测的密码可以有效防止暴力破解攻击。密码应包含大小写字母、数字和特殊字符,并建议使用长密码。
- 2.密码锁定策略:设置账户登录失败次数限制,并在达到限制后锁定账户一段时间,以防止攻击者使用暴力破解方法进行尝试。
- 3.双因素认证(2FA):引入双因素认证可以增加账户的安全性。在密码验证的基础上,额外要求提供第二个因素(如手机验证码、指纹等)来验证用户身份。
- 4.登录延迟:在每次登录尝试之后,增加一些延迟时间,逐渐增加失败尝试的成本,以减缓暴力破解攻击的速度。
- 5.IP封锁:检测到多次失败的登录尝试来自特定IP地址时,可以将该IP地址列入黑名单或暂时封锁,以遏制暴力破解攻击。
- 6.实施账户锁定策略:在一段时间内,如果有连续多次失败的登录尝试,可以锁定相应的账户,直到管理员逐一解锁。
- 7.使用账户名单:维护一个经过验证的账户名单,只允许这些账户进行访问,而不是允许任何账户都尝试登录。
- 8.监控登录活动:实时监控登录活动,检测异常行为,例如来自不同地理位置的异常登录尝试等,并及时采取相应的措施。
- 9.更新和维护:定期更新操作系统、应用程序和安全补丁,以修复已知安全漏洞,并维护系统的安全性。