对 *.google.com/* 产品进行大规模的 CSRFing 研究,意外获得3万美元奖金
我决定摒弃平时的研究方向 (XSS),想找到 CSRF 漏洞,而这一切始于研究员 Alex得出的强大研究成果:
他找到的是一个同源策略绕过漏洞:通过读取 CSRF令牌,完美绕过 CSRF 保护措施,但有一点并不完美:允许在目标来源上上传或托管 PDF 文件的目标并不多见。
因此,我必须找到一种其它方法。研读了一些关于 PDF内容的write-up、研究报告和出版物后,我想到利用主流浏览器如 IE 等的内容嗅探算法:
(1)我们可以强制内容类型仅通过在 URL末尾添加“;evil.pdf”的方式以应用程序/PDF等真正的内容类型进行加载。例如:<embedsrc=victim.com/victim;.evil.pdf type=application/pdf>。
(2)通过查找第一次出现的“%PDF-1” , Adobe对 PDF 文件进行验证,之后只要它满足 PDF文件的结构要求,就一直将其作为合法的 PDF文件进行读取。
意思是,找到这样一个端点:除了在 URL末尾附加“;.pdf”后,我们还可以注入 PDF 内容和特殊字符 (%、<、>、”),返回相同的响应,使 PDF 文件托管在 target.com来源上,不管注入的位置在哪里、它的真实内容类型是什么以及“%PDF-1”之前是什么。
在 *google.com 中,存在数量足够多的、满足这些要求的端点,其中多数端点是 CSV 导出/导入功能,如下:
除了一些其它的常见注入外,它们还可以在具有 text/plain、application/octet-stream 以及其它内容类型的页面上反映出来。
现在找到在目标来源上运行 PDF的方法后,我将 ediscovery.google.com 作为 PoC,将报告发送给谷歌漏洞奖励计划。坦率讲,由于该漏洞仅可在 IE浏览器中被利用,因此我并未期望会获得奖金什么的,但结果仍然按照任何起作用的 CSRF那样给我颁发全额奖金3万美元。于是我开启了对易受攻击端点进行大规模利用和发送更多漏洞报告之路。
一些视频 PoC如下,供参考:
CSRF google.com/contacts/
CSRF ediscovery.google.com
CSRF chat.google.com CSRF
Google App Engine 功能被滥用于创建无限制的钓鱼页面
http://www.missoumsai.com/google-csrfs.html
题图:Pixabay License
本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。