一、请求的截获与篡改
1.隐藏域攻击——查看元素中"display":none的即为隐藏域(用户不可见,但会随表单一起提交)
可以直接在elements中修改,删去 "display":none 页面上就能看见之前隐藏的元素了(但是一刷新就会又全部显示出来)
例如下单页面将“会员优惠”做成隐藏域,用户自己打开并输入金额后,在后端没有校验的情况下就较少了支付的金额。
避免的方式:1.在可以动态生成元素的情况下,不使用隐藏域提前创建元素;2.在提交表单时,使用js对隐藏域的值做判断 3.对于关键参数,后台服务端接口需要做独立判断(验证用户是否是会员,能否使用会员优惠)——2+3也称为双端验证
2.修改关键业务参数(js代码在source中查看)
例如限购商品,前端element修改数量再提交
避免的方式:1.在提交表单时,使用js对关键字段的值做判断 2.对于关键参数,后端服务端接口做独立判断——双端验证
3.找回密码存在的漏洞
输入用户名——回显绑定的手机号(隐藏部分位数)——发送验证码——校验验证码
——可能存在的问题,后端直接返回验证码
——隐藏部分位数的手机号不加密或者只进行了单层MD5加密(泛指可以被知道的简单加密规则),用burpsuite拦截发送验证码的请求,将原本手机号的加密