本文作者:comical(信安之路首次投稿作者)
在某某 src 进行渗透测试的过程中,发现一个评论的地方并没有对次数进行限制且在数据区域也没有 token 的字眼,因此猜测此处存在 csrf 漏洞,于是就开始了漫长的学习之旅
前置知识
CSRF:关于 csrf 漏洞相信大家都有了解,而且百度 google 大部分都比我讲的好,这里我就不解释了,贴张图把
Json CSRF: 通常我们的 csrf 都是在 get 请求或者 post 数据包中构造类似于 param=value 的字眼提交给服务器,服务器得到数据,处理请求,而 json csrf 传上去的值是一串 json 数据,相比于普通的 csrf,json 的数据往往更难构造
某某 src
在测试时发现评论的数据包如下图:
刚开始,看到下面 POST 的数据里面并没有 token 的字眼,而且在 repeater 中重放也可以评论多条,于是认为可能存在 csrf 漏洞,准备构造 payload 的时候才看到这里在头部进行了检测,因此此处是不存在 csrf 漏洞的
陷入思考
如果我们假设这个头部不存在 token 的情况下,我们要怎么完成一次 csrf 攻击呢?(以下的头部都默认手动加上 token 方便调试和研究)
level1:
最简单的,通过 form 表单发送一个请求,burpsuite 有直接写好的插件,保存到本地,点开即可
我们抓包分析一下
和之前的包进行对比,可以看到两处的 Accept、Content-Typ