暴力破解
在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作
练习:
基于表单的暴力破解:
随便输入一个用户名和密码登录
burp抓包,显示用户名和密码
发送到intruder,选择Cluster bomb爆破方式,爆破用户名和密码 (我们的目的是对这个数据包进行连续的存放,每一次存放的时候,我们需要把这里的账号和密码替换成我们字典里面的账号和密码,然后不停的去试,然后根据访问结果,再来判断这个尝试是否成功)
用户名对应字典
密码对应字典
第一个字典里的变量替换用户名,第二个字典里的变量替换密码
检测哪个数据包撞成功
包含这个flag的请求是无效的请求,也就是说是错误的账号密码
正确的账号密码
也可根据响应包的长度(Length)判断,登录成功和失败返回的数据包的长度总会有点不一样
验证码绕过:
on client:
通过查看页面源码可以看出,所有的验证码的生成以及验证码的验证实际上都是通过JS再前端来做的
多了验证码
发送到Repeater
确认验证码是否有效,修改正确的验证码,发现是前段JS做的验证码,后端不检测,起不到什么真实的作用
进行暴力破解
on server:
常见问题:1.验证码在后台不过期,导致可以长期被使用
2.验证码校验不严格,逻辑出现问题
3.验证码设计的太过简单和有规律,容易被猜解
随便输入用户名和密码,输入正确的验证码,burp抓包
发送到repeater,将正确的密码改为空,检验后台是否验证验证码,如图所示,验证码不能为空,验证码输入错误,说明后台对验证码进行了校验
判断验证码是否可被重复利用
输入正确的验证码,后台显示用户名或密码错误
修改一次用户名或密码,验证码不变,依然提示用户或密码不存在,也就是说这个验证码是可以被重复利用的
选择用户名和密码进行爆破,验证码输入正确的保持不变
Match输入success,攻击后如图所示,显示出正确的用户名和密码
token防爆破:
如图为随机生成的token值
将最下方的重定向选择为always
选择单线程
XSS:
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户