SSRF详解(包含多种SSRF攻击)

这篇具有很好参考价值的文章主要介绍了SSRF详解(包含多种SSRF攻击)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Server-side request forgery(SSRF)

简介

服务器端请求伪造(也称为 SSRF)是一种 Web 安全漏洞,允许攻击者诱导服务器端应用程序向非预期位置发出请求。在典型的 SSRF 攻击中,攻击者可能会导致服务器连接到组织基础设施内的仅供内部使用的服务。在其他情况下,他们可能会强制服务器连接到任意外部系统,从而可能泄露授权凭证等敏感数据。

如果攻击者能够将url参数更改为localhost,这可能允许他们查看服务器上托管的本地资源,从而使其容易受到服务器端请求伪造的攻击。

如果攻击者可以控制服务器端请求的目的地,这将开启一系列攻击活动,可能允许他们:

  • 滥用易受攻击的服务器与其他系统之间的信任关系
  • 绕过 IP 白名单
  • 绕过基于主机的身份验证服务
  • 阅读网络资源和其他人无法访问的有用资产,例如 AWS 环境或trace.axdASP.NET中的元数据 API
  • 在服务器连接到的内部网络上执行端口扫描
  • 从网络服务器读取文件
  • 查看状态页面并作为 Web 服务器与 API 交互
  • 检索敏感信息,例如在反向代理后面运行的 Web 服务器的 IP 地址
  • SSRF详解(包含多种SSRF攻击)

OWASP Top 10 中的 SSRF

服务器端请求伪造是一个众所周知的漏洞,也是Open Web Application Security Project十大 Web 应用程序安全风险列表中的常规项目。在2021 年的 OWASP 前 10 名中,它第一次获得了自己的类别 A10:2021 – 服务器端请求伪造 (SSRF)。

随着现代 Web 应用程序变得越来越复杂和相互关联,获取 URI 已成为交付内容和功能的基本操作。随着服务器端请求的增加,SSRF 漏洞也变得越来越普遍。同时,由于云服务和复杂的基于云的应用程序架构的日益普及,它们的范围和影响正在扩大,这可能允许攻击者通过受感染的服务器访问 Web 基础设施和云数据源。

SSRF的典型利用

在典型的 SSRF 场景中,想要访问内部服务器的外部攻击者无法使用直接请求,因为它们会被防火墙阻止。相反,恶意行为者可以利用 SSRF 漏洞通过易受攻击的 Web 服务器进行攻击:

  1. 攻击者向易受 SSRF 攻击且与目标服务器位于同一内部网络的 Web 服务器发送伪造请求。
  2. 易受攻击的 Web 服务器将攻击者控制的请求发送到受害者的服务器,绕过防火墙。
  3. 受害者的服务器用请求的数据响应网络服务器。
  4. 如果特定的 SSRF 漏洞允许,数据将被发送回攻击者。在大多数情况下,攻击者需要通过其他方式(带外)泄露或推断此信息。

SSRF详解(包含多种SSRF攻击)

常见的 SSRF 攻击

SSRF 攻击通常利用信任关系升级来自易受攻击的应用程序的攻击并执行未经授权的操作。这些信任关系可能与服务器本身有关,或者与同一组织内的其他后端系统有关。

针对服务器本身的 SSRF 攻击

在针对服务器本身的 SSRF 攻击中,攻击者诱导应用程序通过127.0.0.1localhost向托管应用程序的服务器发出 HTTP 请求。攻击者可以直接访问/adminURL。但管理功能通常只能由合适的经过身份验证的用户访问。因此,直接访问 URL 的攻击者不会看到任何感兴趣的内容。但是,当对/adminURL 的请求来自本地机器本身时,正常的访问控制就会被绕过。该应用程序授予对管理功能的完全访问权限,因为该请求似乎来自受信任的位置。

SSRF详解(包含多种SSRF攻击)

首先进入到商品页面观察,点击Check stock

SSRF详解(包含多种SSRF攻击)
观察burpsuite拦截到的请求,找到一段url,我们尝试修改url为http://localhost/admin

SSRF详解(包含多种SSRF攻击)

并使用url编码后发送

SSRF详解(包含多种SSRF攻击)

在Check stock下面出现**/admin**页面

SSRF详解(包含多种SSRF攻击)

虽然这里已经进入到管理员页面,但是并不能执行管理员操作,可以尝试点击Delete,获取删除操作的url

SSRF详解(包含多种SSRF攻击)

再次点击Check stock,在burpsuite更改stockApi为:http%3a%2f%2flocalhost%2fadmin%2fdelete%3fusername%3dcarlos

SSRF详解(包含多种SSRF攻击)

成功删除用户

SSRF详解(包含多种SSRF攻击)

针对其他后端系统的 SSRF 攻击

服务器端请求伪造经常出现的另一种信任关系是应用程序服务器能够与用户无法直接访问的其他后端系统进行交互。这些系统通常具有不可路由的私有 IP 地址。由于后端系统通常受到网络拓扑的保护,因此它们的安全状况通常较弱。在许多情况下,内部后端系统包含敏感功能,任何能够与系统交互的人无需身份验证即可访问这些功能。

SSRF详解(包含多种SSRF攻击)

首先进入web页面,访问商品详情页

SSRF详解(包含多种SSRF攻击)

点击Check stock进入burpsuite拦截界面

SSRF详解(包含多种SSRF攻击)

按照描述所说,我们要在192.168.0.X范围查找目标ip,所以这里我们在1左右添加’§’

SSRF详解(包含多种SSRF攻击)

设置Payload type为Numbers,并且数字范围为1-255,步长为1

SSRF详解(包含多种SSRF攻击)

开始爆破,爆破完成后,按照状态码大小排序,得到ip最后一位为239时的状态码为404

SSRF详解(包含多种SSRF攻击)

接下来到Repeater模块尝试SSRF攻击,更改stockApi为http%3A%2F%2F192.168.0.239%3A8080%2Fadmin

SSRF详解(包含多种SSRF攻击)

进入到管理员页面,在response这一栏给出了删除用户的url

SSRF详解(包含多种SSRF攻击)

直接更改stockApi为http%3a%2f%2f192.168.0.239%3a8080%2fadmin%2fdelete%3fusername%3dcarlos,发送该请求即可删除用户carlos

SSRF详解(包含多种SSRF攻击)

具有基于黑名单的输入过滤器的 SSRF攻击

某些应用程序会阻止包含主机名(如127.0.0.1localhost)或敏感 URL(如/admin). 在这种情况下,您通常可以使用各种技术来绕过过滤器:

  • 使用 的替代 IP 表示形式127.0.0.1,例如2130706433017700000001127.1
  • 注册您自己的解析为127.0.0.1. 您可以spoofed.burpcollaborator.net用于此目的。
  • 使用 URL 编码或大小写变体混淆被阻止的字符串。

SSRF详解(包含多种SSRF攻击)

进入到商品详情页,点击check stock进入burpsuite拦截界面

SSRF详解(包含多种SSRF攻击)

这里看到访问的域名为stock.weliketoshop.net

SSRF详解(包含多种SSRF攻击)

尝试更改目标地址为localhost和127.0.0.1,即stockApi为http%3a%2f%2flocalhost%3a8080%2f%2Fproduct%2Fstock%2Fcheck%3FproductId%3D1%26storeId%3D1,这里得到一个提示,要访问的地址被过滤
SSRF详解(包含多种SSRF攻击)

尝试更换目标ip为127.1(这里换成其他地址也可以,只要最终指向的是127.0.0.1就行),得到200响应

SSRF详解(包含多种SSRF攻击)

接下来修改stockApi尝试访问admin页面,再次被过滤到

SSRF详解(包含多种SSRF攻击)

对admin进行url编码,第一次编码为%61%64%6d%69%6e,尝试访问仍然不成功,进行二次编码为%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65

SSRF详解(包含多种SSRF攻击)

成功进入到admin页面

SSRF详解(包含多种SSRF攻击)

同理,再对admin/delete?username=carlos进行两次url编码,修改stockApi,删除用户carlos

SSRF详解(包含多种SSRF攻击)
SSRF详解(包含多种SSRF攻击)

针对 ftp 服务器的SSRF攻击

通过命令nmap 10.10.11.111 -p- -v --min-rate=10000扫描得到,靶场开启22和80端口,再使用命令

nmap 10.10.11.111 -A -sC -sV -T4 -p 22,80

查看开启端口的详细信息

SSRF详解(包含多种SSRF攻击)

这里观察到80端口会重定向到http://forge.htb,将forge.htb添加到/etc/hosts中,访问域名,点击右上角的上传图片路径

SSRF详解(包含多种SSRF攻击)

这里尝试上传url:http://forge.htb或http://127.0.0.1,弹出提示说上传的URL中包含黑名单地址

SSRF详解(包含多种SSRF攻击)

尝试上传本地ip,监听到访问

SSRF详解(包含多种SSRF攻击)

使用burpsuite大小写混淆可以得到输出,得到一个URL,但在浏览器中访问该URL返回404

SSRF详解(包含多种SSRF攻击)

尝试curl访问URL,可以得到该页面源代码,我们考虑这个地方可能存在SSRF漏洞

SSRF详解(包含多种SSRF攻击)

使用命令file:///etc/passwd获取passwd文件内容,得到响应上传的url仅支持http或https协议

SSRF详解(包含多种SSRF攻击)

这里写一个重定向语句,尝试访问Lab本地ftp服务器

SSRF详解(包含多种SSRF攻击)

并不支持直接访问ftp服务器

SSRF详解(包含多种SSRF攻击)

接下来使用gobuster进行子域名枚举,用grep筛选可以成功访问的域名(grep用法看这篇)

SSRF详解(包含多种SSRF攻击)

访问admin.forge.htb(记得添加/etc/hosts)

SSRF详解(包含多种SSRF攻击)

提示我们仅本地允许访问,这回应该能用SSRF了,上传子域名URL

SSRF详解(包含多种SSRF攻击)

使用curl查看返回的内容(注:上传的URL最后要有/,否则curl会报404)

SSRF详解(包含多种SSRF攻击)

接着再继续访问刚得到的announcements链接,得到一个用户凭据user:heightofsecurity123!,并且它说/upload支持ftp上传,使用**?u=**添加参数

SSRF详解(包含多种SSRF攻击)

构造访问内部ftp服务器URL:http://adMin.ForGe.htb/upload?u=ftp://user:heightofsecurity123!@127.0.0.1/

SSRF详解(包含多种SSRF攻击)

提示URL中包含黑名单地址,修改ftp大小写,但仍然是这个结果,可能是127.0.0.1需要修改,试一下127.1,这里用0x7f000001也可以

SSRF详解(包含多种SSRF攻击)

SSRF详解(包含多种SSRF攻击)

上传修改后URL成功进入到ftp服务器内部

SSRF详解(包含多种SSRF攻击)

防范SSRF攻击

为防止 Web 应用程序中出现 SSRF 漏洞,我们应该对 Web 服务器获取的远程资源使用允许域和协议的白名单。甚至还应该避免在任何可以代表服务器发出请求的函数中直接使用用户输入。虽然清理和过滤用户输入是比较有效的措施,但我们不应将此作为唯一的保护措施,因为它几乎不可能涵盖所有不同的场景。

攻击者可以使用多种技巧来绕过 URL 过滤:

  • 使用编码的 IP 地址,这些地址将被转换为内部网络中的 IP:
      1. 1-> 与本地主机相同
    • 0x7f000001 -> 与本地主机相同
  • 提供解析为内部 IP 地址的主机名
  • 通过在主机名末尾应用点来绕过主机黑名单

这只是攻击者武器库中的一小部分绕过方法,因此最保险的做法是避免用户在代表服务器发出请求的函数中输入。文章来源地址https://www.toymoban.com/news/detail-425265.html

到了这里,关于SSRF详解(包含多种SSRF攻击)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Appium】Failed to create session. An unknown server-side error occurred while processing the command

    报错信息: 遇到这些错误的时候,我们要把 手机开发者模式的这三个选项都打开 : 因为它要安装一个软件: 第一次调试的时候手机端会弹出来个密钥确定的窗口,大概意思就是是否同意这个计算机对自己的电脑进行调试,要点同意。 然后 手机一定要安装好要进行调试的软

    2024年02月16日
    浏览(63)
  • appium踩坑(VIVO手机)报错:An unknown server-side error occurred while processing the command.Original error

    appium报错:Failed to create session. An unknown server-side error occurred while proces....... 1、appium管理员身份运行,重新填写配置中的ANDROID_HOME和JAVA_HOME 2、appium地址从127.0.0.1 改为0.0.0.0 3、运行Inspector host地址改为localhost其他保持不变 可成功运行Inspector,不知道哪一步解决的,总之在127.0

    2024年04月28日
    浏览(43)
  • Appium如何解决报错:An unknown server-side error occurred while processing the command. Original error: Er

    使用appium客户端连接小米手机失败,完整报错信息如下: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: ‘Command ‘{已隐藏}/Library/Android/sdk/platform-tools/adb -P 5037 -s fca2117a shell settings delete global hidden_api_policy_pre_p_apps’ exited with c

    2024年04月15日
    浏览(63)
  • pikache靶场通关——SSRF攻击

    SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制 导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据 数据流:攻击者-----服务

    2024年02月11日
    浏览(34)
  • Server side event (SSE)实现消息推送功能

     在开发web项目时,有一个需求是: 后端服务器 要 主动地 、 不断地 推送消息给 客户端网页 。要实现该需求,需要先考虑几个常用的技术方案: 在客户端网页用 fetch 、 XmlHttpRequest 发送请求是 行不通 的,因为这类请求在后端返回一次数据之后就会中断连接,导致后端无法

    2024年02月06日
    浏览(44)
  • 使用WAF防御网络上的隐蔽威胁之SSRF攻击

    服务器端请求伪造(SSRF)攻击是一种常见的网络安全威胁,它允许攻击者诱使服务器执行恶意请求。与跨站请求伪造(CSRF)相比,SSRF攻击针对的是服务器而不是用户。了解SSRF攻击的工作原理、如何防御它,以及它与CSRF的区别对于确保网络安全至关重要。 什么是SSRF攻击 定

    2024年01月17日
    浏览(49)
  • CSRF及SSRF详解

      CSRF(Cross-site Request Forgery,跨站请求伪造)是一种针对网站的恶意利用。   CSRF攻击可以利用用户已经登陆或已经授权的状态,伪造合法用户发出请求给受信任的网点,从而实现在未授权的情况下执行一些特权操作。   1)首先用户登录网站,并且生产本地的cookie。

    2023年04月22日
    浏览(50)
  • SSRF详解 基于CTFHub(上篇)

         本文将针对SSRF(服务端请求伪造)进行简要的讲解。通过CTFHub上的例题,让读者了解SSRF的基本原理、利用方式、绕过方式等。CTFHub的地址为:CTFHub 目录 SSRF简介 第一题 内网访问 第二题 伪协议读取文件 第三题 端口扫描 第四题 POST请求  第五题 上传文件 结语 很多

    2024年02月05日
    浏览(38)
  • 使用base64加密解密的多种方法:包含pc端和微信小程序

    1、pc端 Window 对象 Window 对象表示浏览器中打开的窗口。 平常在开发pc端浏览器的时候。如果要加密或者解密成为一个 base-64 编码的字符串。我们都可以使用Window 对象里的对象方法: atob() 解码一个 base-64 编码的字符串。 btoa() 创建一个 base-64 编码的字符串 我们可以直接在浏览

    2024年02月15日
    浏览(48)
  • 跨站点请求伪造攻击 - Cross Site Request Forgery (CSRF)

    最好理解CSRF攻击的方式是看一个具体的例子。 假设你的银行网站提供一个表单,允许当前登录用户将钱转账到另一个银行账户。例如,转账表单可能如下所示:

    2024年01月21日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包