练习部分
防止暴力破解的措施总结:
设计安全的验证码,对认证错误的提交进行计数和给出限制,必要的情况下使用双因素认证。
打开pikachu靶场第一章节token防爆破,依旧是随意输入用户名密码进行测试。显示username or password is not exist。
在网页中按f12呼出控制台,利用控制台左上角第一个图标的选择器,点击选中网页中的usernamepassword输入框,可看到控制台中的对应代码字段高亮,点击开该段表单可见form表单中的名为token的输入项。
网页刷新一次,可见该token随着网页刷新改变了它的value数值。
打开brupsite,利用proxy进行抓包,把抓包到的请求发送到intruder。
在intruder中把用户名直接设置为之前题目破解使用过的admin,把password和token设置为payload位置,选择攻击类型为pitchfork。
给密码payload添加字典字符,在payload设置中选择grepmatch,设置匹配项为username or password is not exists。
切换到二号字典,点击设置选项卡里的grep extract
,点击添加,然后点击获取响应,再出现的搜索框中输入token,取消勾选根据以下选择更新设置,点击搜索框旁切换符切换到后面有value数据的token位置。选中value数值,复制下来,再次勾选根据以下选择更新设置,确认。
回到payload,在payload类型中选择递归提取,在下方payloadsettings中把之前复制到的token值粘贴到首次请求初始payload输入框。
选择开始攻击后,查看结果。可见通过刚刚的操作,我们设置了规则,让burpsite自动获取到网页中隐藏的token,每次重新攻击时获得新的token,随新的密码以一对一的形式一起输入进入网页。
通过设置的username选项快速排序和观察响应长度,得出admin000000和admin123456两组用户名密码可能能为正确密码,输入进入网页。得知admin123456为正确的用户名密码,登录成功。