700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 2-5暴力破解防范措施和防范误区

2-5暴力破解防范措施和防范误区

时间:2023-05-23 21:47:22

相关推荐

2-5暴力破解防范措施和防范误区

防暴力破解的措施总结

目前首当其冲的就是使用验证码

 设计安全的验证码(安全的流程+复杂而又可用的图形);

 在后台启用一些安全的规则,对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时;

 必要的情况下,使用双因素认证;

聊一聊token对防暴力破解的意义(意外的问题)

一个简单的token的实例

一般的做法:

1.将token以“type=‘hidden’”的形式输出在表单中;

2.在提交认证的时候一起提交,并在后台对其进行校验;

但,由于其token值输出在了前端源码中,容易被获取,因此也就失去了防暴力破解的意义。

我们首先来看一下token的问题,我们看一下源码

这个长长的数字,其实就是我们说的token,每当我们打开页面的时候,后端在收到请求之后,它会在后端同时生成token,然后把token放到session里面,同时会把这个token输送到前端的表单里面来,它的目的是,当我们去点账号密码,点登录的时候,后台同时会对账号密码,加上token,来进行验证,并且,你每次刷新页面,token都会变的,我们可以重新点一个,刷新看一下

我们看到跟刚刚是不一样的,就是每次刷新都不一样,我们接下来看一下后端的代码

对提交的token和session里面的token进行对比,如果这个token验过了,才会去验账号密码,如果token验不过,它是不会去验账号密码的

每当你去请求这个页面的时候

这个地方都会去执行set_token();,我们去看一下这个函数是什么内容

先判断token存不存在,如果存在就先把它销毁掉,然后再去生成新的token,这个token其实就是一个rand,从一个随机数里面生成一个对应的字符串,后面把这个字符串生成到token里面去

最终的效果是,当我们在前端刷新这个页面的时候这个set_token它产生的值,会被我们显示到input标签里面

input标签会把session里面的token给echo出来到表单里面

当我们在前端提交代码的时候,同时会提交一个隐藏的值,后端同时也会对这个token进行验证,这个其实是无法防止暴力破解的,因为在验证之前,这个token值已经被攻击者获取到了,因为它被以input方式明文的输送到了html表单里面,攻击者只要写个工具,在每次提交认证前,获取一下这个值,然后填到它的value里面,就可以进行连续性重放,因为每次token都是用value来提交的,所以说,用token来防止暴力破解是没有用的

我们来实际演示一下,先抓包

把请求消息发送到intruder,攻击类型选择pitchfork,添加密码和token值,记得把用户名给改成admin

选择options,线程数为1,因为我们要获取前面的token值,才能做下一次请求,无法并发

选择grep-extract

点add,输入value进行搜索,对token值进行选中,这里记得复制一下,然后点refetch response,刷新一下

redirections>always

点payloads,在payload options里面把我们刚才复制的token值黏贴进去

然后加载一下字典,就可以开始爆破了

搜索login,爆破成功

一般Token在防止CSRF上会有比较好的功效,具体将在CSRF漏洞章节进行讲解。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。