找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3276

积分

0

好友

452

主题
发表于 2025-12-24 07:37:42 | 查看: 70| 回复: 0

本文内容仅供网络安全研究学习,请勿用于非法用途。

在一次针对X(前Twitter)旗下人工智能服务x.ai(GROK API)的安全研究中,我发现了一个由多项不安全配置组合导致的潜在风险。最初,我尝试了常见的提示词注入攻击,但发现GROK作为API无法访问外部资源,且其生成的虚假信息(如API密钥)并无实际危害,因此转向了对网站本身的渗透测试

调查初期,我发现了包括IDOR在内的若干漏洞。其中,一个关于支付流程的异常引起了我的注意:当团队账号余额耗尽后,服务并非立即停止,而是会延迟30分钟才被禁用。这意味着理论上可以获得30分钟的免费服务窗口。

我将此问题报告给X安全团队,但报告被标记为“信息性”并关闭。其理由是攻击者在30分钟内无法造成实质损害,因为x.ai服务对请求量有严格限制(RPH和RPS),且单次请求消耗的令牌数通常在100-1000个之间,成本有限。

为了让漏洞更具威胁性,我进行了深入审查。我发现系统存在两个关键限制参数:

  • 单次请求的最大令牌数(包括completion_tokens)约为10万(因502错误,实际无法达到理论值131072)。
  • 所有模型的总RPH(每小时请求数)为2520。

据此计算,在30分钟的漏洞窗口内,最大可消耗令牌数为:100,000 * (2520 / 2) = 126,000,000个令牌,折合经济损失约2000美元。基于此升级后的攻击模型,我的报告被X团队接受并分类处理。

然而,探索并未结束。我进一步发现了API中两个可用于极大放大攻击效果的隐藏参数:

  • n:为单条输入消息生成多个聊天完成选项的数量。系统将根据所有选项生成的令牌总数计费。为降低成本,官方建议将其设置为1。
  • temperature:采样温度,范围0-2。值越高(如0.8)输出越随机,值越低(如0.2)输出越集中、确定。

简单来说,通过将n参数设置为最大值,并调整temperature值,可以令单次请求消耗的completion_tokens激增。

我的测试证实,当temperature参数使单次请求消耗约11万令牌,且将n设置为128时,单次请求的最大令牌消耗可达1280万,成本超过100美元。那么,在30分钟的攻击窗口内,总损失可达:100美元/请求 * (2520/2) 次请求 = 约12.6万美元。

更严峻的推演在于,攻击成本极低。仅需5美元即可激活一个x.ai团队账号。这意味着,若攻击者投入500美元创建100个团队账号进行串联攻击,理论上可对X造成高达2560万美元的潜在损失。

出于法律与道德风险考虑,我并未执行此次大规模概念验证,仅验证了单次请求造成约100美元损失的可能性。最终,该漏洞为我赢得了X平台1200美元的中等风险赏金。

希望这个案例不会令安全研究者们气馁。漏洞赏金之路常伴挫折(如重复报告、赏金争议等),但它依然是一个充满挑战与价值的领域。
图片
图片
图片
图片




上一篇:向量运算核心原理:从几何基础到机器学习与物理应用
下一篇:Android App Sign参数逆向实战:基于Unidbg与ARM汇编的MD5算法分析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-8 03:50 , Processed in 0.308681 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表