1、定义
json劫持,有时也被称为jsonp劫持,或者划分为csrf的一种类型,说的是同一个对象。
一般csrf,是借用用户登录后的cookie凭证身份,结果是攻击者伪造提交操作类型的请求,即增删改,而几乎无法获取数据。
- 受害者用户登录目标网站,cookie作为登录凭证,不包含token
- 网站下存在jsonp机制,即允许非ajax跨域请求个人数据
- 攻击者控制某第三方网站,页面中嵌入目标jsonp,受害者用户访问该页面,自动携带目标域cookie
- 目标域本身支持jsonp,而jsonp默认支持跨域请求。因此一般不检查referer字段,返回其个人数据
- 攻击者控制网页中,定义回调函数,将返回的受害者个人数据发送给攻击者
2、场景
(1)从前端上来说,分析jsonp场景的代码
(2)从url来说,一般包括callback关键字,但注意命名并不绝对
(3)响应为json类型,从content-type和响应体部分析。但严格来说,一般纯文本、xml的响应也有可能
(4)时间为登录后,登录凭证cookie,非token
(5)未检查referer
3、防护
(1)token
(2)检查referer
(3)严格过滤 callback 函数名及 JSON 里数据的输出。