前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web Hacking 101 中文版 十七、服务端请求伪造

Web Hacking 101 中文版 十七、服务端请求伪造

作者头像
ApacheCN_飞龙
发布2022-12-01 16:50:21
6760
发布2022-12-01 16:50:21
举报
文章被收录于专栏:信数据得永生

十七、服务端请求伪造

作者:Peter Yaworski 译者:飞龙 协议:CC BY-NC-SA 4.0

描述

服务端请求伪造,或者 SSRF,是一种类型,它允许攻击者使用目标服务器来代表攻击者自己执行 HTTP 请求。这和 CSRF 类似,因为两个漏洞都执行了 HTTP 请求,而不被受害者察觉。在 SSRF 中,受害者是漏洞服务器,在 CSRF 中,它是用户的浏览器。

这里的潜力非常大,包括:

  • 信息暴露,其中我们欺骗服务器来暴露关于自身的信息,在示例 1 中使用 AWS EC2 元数据描述。
  • XSS,如果我们让服务器渲染远程 HTML 文件,其中带有 JavaScript。

示例

1. ESEA SSRF 和 AWS 元数据请求

难度:中

URL:https://play.esea.net/global/media_preview.php?url=

报告链接:http://buer.haus/2016/04/18/esea-server-side-request-forgery-and-querying-aws-meta-data/

报告日期:2016.4.18

奖金:$1000

描述:

电子运动娱乐联盟 (ESEA) 是一个电子运动视频竞技比赛的社区,由 ESEA 建立。最近他们启动了一个漏洞奖励计划,Brett Buerhaus 在上面发现了一个不错的 SSRF 漏洞。

使用 Google Dorking,Brett 搜索site:https://play.esea.net/ ext:php。这让 Google 在play.esea.net域中搜索 PHP 文件。查询结果包括https://play.esea.net/global/media_preview.php?url=

看看这个 URL,似乎 ESEA 从外部站点渲染内容。在寻找 SSRF 的时候,这是一个危险标志。像他描述的那样,Brett 尝试它自己的域名:https://play.esea.net/global/media_preview.php?url=http://ziot.org。但是没有作用,结果,ESEA 寻找图片文件,所以它尝试包含图片的载荷。首先使用 Google 作为域名,之后是它自己的,https://play.esea.net/global/media_preview.php?url=http://ziot.org/1.png

成功了。

现在,这里真实的漏洞是,欺骗服务器渲染其它内容,而不是预设的图片。在他的博文中,Brett 描述了通常的技巧,例如使用空字符(%00),额外的斜杠以及问号来绕过或欺骗后端。在它的例子中,它向 URL 添加了?https://play.esea.net/global/media_preview.php?url=http://ziot.org/?1.png

它所做的就是将前面的文件路径,1.png转换为参数,并且不是实际要渲染的 URL 的一部分。因此,ESEA 渲染了它的页面。换句话说,它绕过了第一个测试的额外检查。

现在,这里你可以尝试执行 XSS 载荷,像他描述的那样。只需创建一个带有 JavaScript 的简单 HTML 页面,让站点渲染它,就这么简单。但是它更进了一步。使用来自 Ben Sadeghipour 的输入(在我的 YouTUbe 频道和 Polyvore RCE 的 Hacking Pro Tips Interview #1 中提到过),它测试了 AWS EC2 实例元数据的查询。

EC2 是 Amazon 的弹性计算云。它们提供了查询自身的功能,通过它们的 IP,来拉取关于实例的元数据。权限很明显限制为实例自身,但是由于 Brett 能够控制服务器从哪里加载内容,它能够使其调用自身并拉取元数据。

EC2 的文档在这里:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2instance-metadata.html。这里是一些你可以抓取的敏感信息。

重要结论 Google Dorking 是一个不错的工具,它能在发现所有类型的可能利用时,节省你的时间。如果你正在寻找 SSRF 漏洞,要留意任何在远程内容中拉取的目标 URL。这里,它的标志是url=。 其次,不要仅限于你的第一想法。Brett 完全能够报告 XSS 载荷,但是这不太深入。通过深入挖掘,它就能发现漏洞的真正价值。但是这样做的时候,要小心不要越界。

总结

服务端请求伪造在服务器可悲利用来代表攻击者执行请求时出现。但是,并不是所有请求最终都能利用。例如,由于站点允许你提供图片的 URL,但它会复制并在自己站点上使用(就像上面的 ESEA 示例),并不意味站点存在漏洞。发现它们只是第一步,随后你需要确认它们的潜能。对于 ESEA,虽然站点寻找图片文件,它并不验证收到的东西,并且可以用于渲染恶意 XSS,以及对自己的 EC2 元数据执行 HTTP 请求。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 十七、服务端请求伪造
    • 描述
      • 示例
        • 1. ESEA SSRF 和 AWS 元数据请求
      • 总结
      相关产品与服务
      高性能计算集群
      高性能计算集群(Tencent Hyper Computing Cluster)以高性能云服务器为节点,通过 RDMA 互联,大幅提升网络性能,提供高带宽和极低延迟的网络服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档