挖到这个漏洞属于偶然,也没有太多的技术含量。
这是商城类型的网站,用户登录之后查看订单
这是正常请求的数据包,因为我是新注册的账号,返回包没有数据
从请求包里面可以发现,req参数里面有userId,尝试修改userId值
修改userId之后,再去请求,返回 非法用户
这说明服务端做了鉴权,请求的userId和当前登录的用户不是一致的,服务端就返回了非法请求
后面我又在想,既然他做了鉴权,我能不能阻碍他的鉴权?
我尝试删除cookie中的值,我首先就注意到了cookie中的SessionToken,
当我删除掉cookie中的SessionToken后,越权请求成功,返回了数据
越权成功的原因是,没有做SessionToken是否存在的一个判断,当SessionToken不存在时,直接允许查询了
修复之后我又去看了一下
从上面的截图也能够看出来,这个网站存在CORS跨域漏洞
登录处可利用CORS跨域得到AccessToken和Uid
对比发现,其实就是SessionToken和userId
直接可以通过替换SessionToken和userId可查看用户订单