十七、服务端请求伪造

作者: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 请求。

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

  1. web渗透测试----15、SSRF漏洞(服务端请求伪造漏洞)

    SSRF漏洞是一种在未能获取服务器权限时,利用服务器漏洞,由攻击者构造请求,服务器端发起请求的安全漏洞,攻击者可以利用该漏洞诱使服务器端应用程序向攻击者选择的任意域发出HTTP请求. 很多Web应用都 ...

  2. 【网络安全工程师面试】—SSRF服务端请求伪造漏洞及利用方法

    目录 4.4. SSRF 4.4.1. 简介 4.4.1.1. 漏洞危害 4.4.2. 利用方式 4.4.3. 相关危险函数 4.4.4. 过滤绕过 4.4.4.1. 更改IP地址写法 4.4.4.2 ...

  3. Weblogic服务端请求伪造漏洞(SSRF)和反射型跨站请求伪造漏洞(CSS)修复教程...

    一.服务端请求伪造漏洞 服务端请求伪造(Server-Side Request Forgery),是指Web服务提供从用户指定的URL读取数据并展示功能又未对用户输入的URL进行过滤,导致攻击者可借助 ...

  4. 渗透测试-SSRF服务端请求伪造(Server-Side Request Forgery)

    SSRF服务端请求伪造 漏洞原理 本次靶场的设计拓扑图 x.x.x.x:8080 - 判断 SSRF 是否存在 172.72.23.21 - SSRF 获取本地信息 172.72.23.1/24 - ...

  5. SSRF服务端请求伪造

    SSRF服务端请求伪造 背景 在做一个需求,需要通过url与库内数据做匹配,然后记录匹配结果.但是部分url是重定向的url,重定向之前的url与库中无法匹配,重定向之后的url可以与库中匹配,所以代 ...

  6. Web Hacking 101 中文版 八、跨站请求伪造

    八.跨站请求伪造 作者:Peter Yaworski 译者:飞龙 协议:CC BY-NC-SA 4.0 描述 跨站请求伪造,或 CSRF 攻击,在恶意网站.电子邮件.即使消息.应用以及其它,使用户的 ...

  7. Web Hacking 101 中文版 十六、模板注入

    十六.模板注入 作者:Peter Yaworski 译者:飞龙 协议:CC BY-NC-SA 4.0 模板引擎是允许开发者或设计师在创建动态网页的时候,从数据展示中分离编程逻辑的工具.换句话说,除了拥 ...

  8. Web Hacking 101 中文版 六、HTTP 参数污染

    六.HTTP 参数污染 作者:Peter Yaworski 译者:飞龙 协议:CC BY-NC-SA 4.0 描述 HTTP 参数污染,或者 HPP,在网站接受用户输入,将其用于生成发往其它系统的 H ...

  9. 【burpsuite安全练兵场-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)

    前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...

最新文章

  1. python-django框架中使用docker和elasticsearch配合实现搜索功能
  2. 10-动态SQL语句
  3. 关于listen的第二个参数backlog的一些问答见解
  4. redis on windows
  5. bmf mysql_bmf 的动态 - SegmentFault 思否
  6. 【图像处理】MATLAB:频域处理
  7. 简单分析Pmod AD5的文档和官方例程
  8. Ubuntu18.0.4配置Hadoop1.2.1环境
  9. 数据结构之王道视频中留下的问题
  10. ResponsibleChain(责任链模式)
  11. A Style-Aware Content Loss for Real-time HD Style Transfer(一个风格转换的风格感知损失)CVPR2018
  12. android系统同时使用wifi和4g上网
  13. LinearLayout和RelativeLayout布局中使用android:orientation
  14. 7-15 新浪微博热门话题
  15. windows 下用开源流媒体压力测试工具 rtmpstress 测试RTMP媒体服务器负载性能
  16. 如何使用python在一个图片内显示多个函数图像及其数学公式
  17. Vue的项目搭配以及实现页面跳转【电竞杜小帅】
  18. 8B/10B编码原理详解、Verilog实现及在JESD204B中的应用
  19. 跟着老陈学嵌入式-C语言入门之类Linux编译环境搭建
  20. U3D_Maze开发手记

热门文章

  1. ZeroC Ice启用SSL通讯的配置
  2. 理解离散傅立叶变换(一. 傅立叶变换的由来)
  3. MySQL 出现 The table is full 的解决方法
  4. C#:System.Data.Common命名空间(数据库抽象工厂的使用)
  5. P3978 [TJOI2015]概率论
  6. 【Android开发—智能家居系列】(一):智能家居原理
  7. HDU 2571 命运
  8. U8 种子ID表 及相关 存储过程
  9. CSS基础笔记(w3school)
  10. Git 命令大全整理