Gmail的三个XSS漏洞

起这个名字完全有标题党的嫌疑,相信会有很多人慕名而来。其实这是看到老外的一篇博客Cross- Site-Scripting in Google Mail有感而写,关于Gmail的XSS,相信做这方面研究的人会有很多感触。Gmail的成功是诸多有才之士造就的,在攻与防的对立中Gmail成长 了,安全研究人员也成长了,耳边响起了那句名言“在攻与防的对立中寻求统一”。现在Gmail强大了,这导致安全研究人员必须花费大量的时间和精力去研究 它,仔细想想这未必就是一件坏事, 如果发送<script>就能将Gmail搞定,那安全研究也就失去了它的价值和意义。通常一个普通的反射型跨站不会引起别人多大重视,甚至 很多人很鄙视。其实从审美的意义上讲也应该遭到鄙视,它太没有技术含量的,也太没有研究价值了。是个人都能发现和拥有的东西当然不会引起重视,同样是反射 型你去研究绕过IE、chome、Firefox的防御机制,研究绕过Waf,绕过各种条件限制,那意义和价值就不一样了。有点扯远了…

继 续看老外的三个Gmail XSS,第一个是Persistent DOM XSS (innerHTML) in Gmail’s mobile view,DOM存储型。发送一封标题含有<img src=x onerror=prompt(1)>的邮件,将这封邮件转发给他人,以后这封转发的邮件就是DOM xss了。第二个是反射型的https://mail.google.com/mail/mu/#cv/search/%22%3E %3Cimg%20src%3Dx%20onerror%3Dalert(2)%3E/foobar 。最关键的是第三个Persistent XSS in Gmail,gmai存储型跨站。
以下两种方式都可以直接显示一封Gmail邮件
https://mail.google.com/mail/u/0/?ui=2&ik=293aded8ef&view=om&th=237da8dbcf05dac2
https://mail.google.com/mail/u/0/?ui=2&ik=293aded8ef&view=domraw&th=237da8dbcf05dac2
ik = 用户标识ID
view = 显示方法
th = 邮件ID

正常情况下om和domraw两种显示都是以text/plain浏览的。而如果你能够让这个URL触发HTTP/1.1 500 Internal Server Error错误,那么邮件会以text/html方式展示,正文中的<script>就XX了。这个思路没有任何问题,如果没记错的话网易和QQ MAIL都曾出现类似的问题,不过网易更直接一点,当你客户端POP一封text邮件,邮件正文含有html标签,网易webmail展示的是HTML…
而 Gmail这明显不同,因为它跟特定用户id和特定邮件相关,首先你必须先获得ik和th,当然这通过img标签或a标签获取都没有问题。问题是这个 XSS的利用,你获取ik和th后还要将URL发送给特定用户,或是在该用户经常浏览的网站上管iframe。那个这个XSS从代码算存储还是反射呢?
还有一个关键问题是HTTP 500的触发,作者没有给出方法,在其留言中称他找到了一个参数可以触发500

原文参考:

http://www.nilsjuenemann.de/2012/06/cross-site-scripting-in-google-mail.html

http://amxking.bokee.com/viewdiary.250312887.html

网络安全攻防研究室(www.91ri.org)信息安全小组收集整理。