专栏首页FreeBuf我是如何发现Google服务器上的LFI漏洞的

我是如何发现Google服务器上的LFI漏洞的

本文将介绍如何利用本地文件包含漏洞读取Google某服务器上的任意文件。漏洞存在于Google的Feedburner中,在提交漏洞后,Google安全团队迅速修复了这一漏洞。

FeedBurner是什么

维基百科上对FeedBurner的介绍:

FeedBurner是一个于2004年在美国芝加哥市成立的网站馈送管理供应商。FeedBurner为博客作者、播客与其他基于网络的内容发布者提供订制的RSS馈送与管理工具,提供予发布者的服务包括流量分析以及一个可供选择的广告系统。2007年Google收购了FeedBurner。

FeedBurner之前就曾是我的目标之一,很久以前我就在这个域名发现过一些xss,我猜想可能还会有有趣的漏洞。之后我在调查后发现,FeedBurner以前有个开放的API,但是Google在2012年关闭了这个API。虽然开发者档案(https://developers.google.com/feedburner/)已经被删除了,我们还是可以用Wayback Machine" (http://archive.org/web/)读取到。

我在文档中发现了这个链接:http://feedburner.google.com/fb/dynamicflares/HelloVisitor.jsp?feedUrl=http://domain.tld/ff.xml(现 在没用了)。

这个jsp脚本的功能是获取动态FeedFlare单元文件的内容,这些单元文件其实基本上就是些简单的xml文件。有些人可能不太熟悉 FeedFlares,这个就像是某种插件,Feed的拥有者可以通过它让读者通过新的方式对发布的内容进行交互,例如:http://www.code4free.com/ff_example.xml。

漏洞挖掘

乍看起来,脚本的作用就是抓取XML,作为feedUrl的参数,然后对其进行XSL转换。这个文件的问题就是直接把XML的内容append过去了,没有进行修改甚至没有编码。

我首先尝试寻找XSS漏洞,我提供了一个指向恶意html文件的URL,就找到了xss漏洞。然后我想,说不定会有漏洞能够造成更大影响呢?例如能够从 web服务器读取文件。

所以我就尝试使用各种payload进行测试,我尝试目录遍历攻击("../../../../../../../etc /passwd"),这是本地文件包含(LFI)攻击中非常典型的手法,没有成功。不过,我随后改变了方法,使用文件URI的方法成功获取到了服务器上的 文件。

虽然根据安全策略文件,不是所有的文件都可以读取,但读取系统日志足以证明这个漏洞,而漏洞的严重性依旧不容小视。我将漏洞提交给Google后,安全团队在10分钟后修复了该问题。

视频PoC

*参考来源:ownsecurity,译/Sphinx,文章有修改,转载请注明来自Freebuf黑客与极客(FreeBuf.COM)

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux内核本地提权漏洞预警分析(CVE-2019-8912)

    近日,Linux git中发布一个commit补丁,该补丁对应的漏洞是一个本地提权漏洞CVE-2019-8912,漏洞影响范围较广。根据git中的commit信...

    FB客服
  • 任意文件移动导致的Windows提权攻击分析

    本文介绍了如何滥用Windows上特权进程执行文件操作来实现本地特权升级(用户到管理员/系统),同时介绍了利用这些类型的错误的现有技术以及漏洞利用工具。

    FB客服
  • Google发现Windows 8.1 0day漏洞并公布漏洞验证程序(PoC)

    Google安全研究人员发现了一枚Windows 8.1权限提升漏洞,攻击者可以借此漏洞修改系统内容甚至完全控制受害者计算机。目前Google已经公布了漏洞验证...

    FB客服
  • Linux目录及文件相关知识整理

    Linux 文件管理是学习 Linux 的基础,看了鸟叔的 Linux 书籍,把 Linux 目录及文件相关的知识整理如下。

    Wizey
  • Snipaste

    Snipaste 是一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上!下载并打开 Snipaste,按下 F1 来开始截图,再按 F3,截图就在桌面置顶显...

    李文华
  • Java 读取大文件,你了解多少呢

    答:我们平常读取一般文件都是将文件数据直接全部读取到内存中进行操作的,这种做法对于小文件是没有问题的,但对于稍大一些的文件就会抛出 OOM 异常,所以我们应该把...

    格姗知识圈
  • 深入浅出Substrate:剖析运行时Runtime

    基于Substrate开发自己的运行时模块,会遇到一个比较大的挑战,就是理解Substrate运行时(Runtime)。本文首先介绍了Runtime的架构,类型...

    MikeLoveRust
  • 大佬,JavaScript 柯里化,了解一下?

    柯里化, 即 Currying 的音译。Currying 是编译原理层面实现多参函数的一个技术。

    沃趣科技
  • 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    一、spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线...

    方志朋
  • Python基础学习-函数

    一:定义函数: ① 函数是带名字的代码块,用于完成具体的工作。 ② 函数使用关键字def来定义,最后,定义以冒号结尾。 ③ 每个函数后面都应紧跟一个文档字符串,...

    爱吃西瓜的番茄酱

扫码关注云+社区

领取腾讯云代金券