挖洞经验 | 谷歌票据上传系统中的Blind XSS漏洞

栏目: 编程工具 · 发布时间: 5年前

内容简介:*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。谷歌这种大厂商背后少不了各种电气和信息化供应商的产品支撑,为了了解工程进度和资金支付情况,谷歌提供了一个在线系统方便供应商向其上传一些电子化票据,该系统被称为Google Invoice Submission Portal(谷歌票据提交系统),地址为

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

挖洞经验 | 谷歌票据上传系统中的Blind XSS漏洞 今天的Writeup讲述了作者在谷歌供应商发票上传系统中,发现了其上传功能存在上传文件类型可更改缺陷,最终利用该缺陷在谷歌内部系统googleplex.com中实现了Bind XSS执行。以下是作者的分享。

谷歌票据提交系统

谷歌这种大厂商背后少不了各种电气和信息化供应商的产品支撑,为了了解工程进度和资金支付情况,谷歌提供了一个在线系统方便供应商向其上传一些电子化票据,该系统被称为Google Invoice Submission Portal(谷歌票据提交系统),地址为 gist-uploadmyinvoice.appspot.com ,如下:

挖洞经验 | 谷歌票据上传系统中的Blind XSS漏洞 一眼就能看出,这是一个架构在谷歌免费应用空间(GAE)appspot.com的网站,谷歌自己也经常在GAE上架设应用网站,一段时间的优化完善之后,会把其生产版本转移到google.com或其它域名。我就搞不懂这个票据提交系统为什么会出现在appspot.com上呢?估计是忘记转移到google.com上了吧。

上传功能测试

在谷歌票据提交系统(Invoice Submission Portal)中,首先要求我们提供输入的是一个采购订单编号(Purchase Order Number)。这里我们随便输入一组数字,点击右边的放大镜搜索按钮。然后,它会跳出以下组织机构选项,这些选项初看起来像是按不同国家区分,这里,我们随便选择一个然后提交。

挖洞经验 | 谷歌票据上传系统中的Blind XSS漏洞 之后,就会显示需要输入各种信息的页面,这些信息包括邮箱、票据号码、票据日期、税率等,另外还包含了一个名为“ Upload Invoice* ”的PDF票据上传按钮,选择它之后,会被要求上传小于15MB的PDF格式票据电子文件。

挖洞经验 | 谷歌票据上传系统中的Blind XSS漏洞

测试XSS漏洞

在上述各种输入区域内,我写入了各种XSS Payload,希望谷歌对这些区域的过滤净化机制存在不足,能有效实现XSS反弹,但最终,我一无所获。

做完输入区域的XSS测试之后,只剩下票据上传功能了,我们来深入分析看看。从其源码可以发现,它只接收后缀名为.pdf格式的文档。

挖洞经验 | 谷歌票据上传系统中的Blind XSS漏洞 我想这只是一个前端的验证机制,我们可以在POST请求中来尝试修改上传文档的后缀名,于是,通过拦截抓包,我们获取了正常的PDF票据上传POST请求,如下:

挖洞经验 | 谷歌票据上传系统中的Blind XSS漏洞 如果在这个请求中,我们尝试把上传票据文件后缀名进行一个更改如何,把它从.pdf更改为.html。所以先把其文件名称和后缀更改为test.html,然后把对应的Content-Type 也更改为了 text/html,当然文件内容为ezXSS生成的一个XSS Payload,其中的

关注 码农网 公众号