以jshop演示站为例,登录页面如下,登录次数超过限制会增加验证码字段。
抓包重放,返回密码错误。
二、爆破管理员账号密码
发送到Intruder模块,先正常爆破密码试试。
可以看见爆破没几个就增加了验证码,返回请输入验证码。
返回Repeater模块,可以看见返回也是请输入验证码。
猜测此类站点逻辑为,正常登录不需要验证码,如果达到某种条件则增加验证码(账号错误次数超过10次、同一个IP登录次数过多、同一台pc登录次数过多)
测试修改User-Agent能否绕过,chrome换成firefox
还是返回请输入验证码,post提交的字段中有__Jshop_Token__,修改内容
还是返回请输入验证码,服务器通过cookie判断不同用户,修改cookie中的PHPSESSID
返回密码错误,服务器误以为是不同用户登录admin账号,返回到最开始的逻辑不需要验证码。
三、绕过验证码爆破
发送到Intruder模块,选取PHPSESSID一部分为payload,再将密码设置成payload,最后将Attack type设置成Battering ram。
(PHPSESSID与密码同步更改)
设置payload字典
开始爆破,成功绕过了验证码。(500是因为PHPSESSID出现了其他字符)
四、总结
如果需要加固的话建议修改逻辑,增加双因子认证。
上面的绕过方式不排除管理员密码存在特殊字符,导致返回500,误以为爆破失败。最好的方式是自己写python脚本进行爆破。
(学会了再更新python脚本)



