news 2026/1/29 14:24:37

利用领先经纪平台中的CSRF漏洞

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
利用领先经纪平台中的CSRF漏洞

利用领先经纪平台中的CSRF漏洞

几个月前,我在一个拥有超过1400万活跃用户的领先经纪平台中发现了一个漏洞。这是一个CSRF(跨站请求伪造)问题。众所周知,CSRF的影响完全取决于攻击者可以触发的操作的关键性和敏感性

当时,我正在随机观看一个YouTube视频,视频中有人演示了如何使用该经纪商的API来构建一个用于算法交易的自动买卖订单机器人。观看过程中,我对身份验证流程,特别是第三方应用程序如何连接到经纪商的平台并获得代表用户进行交易的权限,产生了浓厚的兴趣。就在这时,情况开始显得可疑。

是时候深入研究并启动“猎犬模式”了:

为了理解背景:这个经纪应用程序允许用户连接他们自己定制的应用程序或其他第三方应用程序。因此,这些应用程序可以代表用户下达交易订单。

预期流程:

表面上看,这个身份验证流程很简单,但一旦你从安全角度审视它,情况就不同了。该网站在几乎所有经过身份验证的POST请求上都实现了Anti-CSRF令牌和其他控制措施——但这些保护措施在第三方应用身份验证流程中完全不存在

以下是该流程的工作原理:

  1. 第三方应用程序向经纪商的后端API发送一个包含其application_id的初始请求。
  2. 经纪商的后端生成一个session_id并将其返回给客户端,同时返回一个“允许/拒绝”的同意页面。
  3. 当用户点击允许时,客户端会向后端发送另一个请求,其中包含:
    • session_id
    • 指示允许/拒绝的参数
    • 用户的cookie
  4. 这个请求缺失了CSRF验证

目标:通过利用这个缺失的CSRF验证,将我自己的恶意第三方应用程序连接到受害者的账户。

为了测试,我使用从我自己的攻击者账户生成的session_id创建了一个简单的CSRF表单。我将这个表单发送到我的第二个账户(扮演受害者)并提交。

结果呢?
我的恶意第三方应用程序在未经受害者任何同意的情况下,自动连接到了受害者的账户。
这证实了攻击者可以简单地发送一个CSRF链接或自动提交表单,如果受害者点击了它,攻击者的应用程序将获得完全授权,可以进行交易和其他敏感操作。

我向他们报告了这个问题,得到的严重性评级是:
他们的回应:接受了问题,但将其标记为低严重性,因为生成的session_id5分钟后过期

因此,攻击需要:

  • 生成一个新的session_id
  • 将其嵌入CSRF表单
  • 发送给受害者
  • 并希望受害者在5分钟内点击

那么,我们能否让漏洞利用更快、更容易、更具可扩展性

目标更新:让漏洞利用更快、更容易、完全可扩展

如果受害者打开一个攻击者控制的网站,攻击者的第三方应用程序应该自动连接到受害者的账户——无需点击、无需手动交互,并且它应该对任何访问用户都有效,而不仅仅是一个。

要实现这一点,我们需要两样东西:

  1. 一个有效的session_id
  2. 一种自动将其嵌入CSRF流程的方法

我的第一个想法很简单:
直接代表受害者发送请求以生成一个新的session_id,获取它,然后自动提交CSRF流程。
但这行不通——因为向经纪商后端发送的请求被浏览器的同源策略(SOP)阻止了。

因此,我创建了一个概念验证(PoC),它:

  1. 启动一个恶意服务器,监听路由 (/)。
  2. 当有人访问该路由时,服务器从服务器端(而不是受害者端)向经纪平台的合法登录端点发出后端请求,以获取生成的session_id
  3. 它捕获登录重定向响应,专门寻找会话ID
  4. 一旦找到会话ID,服务器会自动构建一个隐藏的HTML表单,伪装成交易平台的“授权”步骤。
  5. 受害者的浏览器被欺骗,从而:
    • 加载此表单
    • 使用 JavaScript自动提交

这导致了一次跨站请求伪造(CSRF)攻击,该攻击:

  • 迫使受害者的浏览器在用户不知情或未同意的情况下,授权一个攻击者控制的应用程序。

通过这种设置,任何访问攻击者控制网站的新用户都会被自动利用,攻击者的第三方应用程序将在不需要任何交互的情况下,持续累积新的受害者账户。每一次页面加载都意味着又一个交易账户被攻陷。

影响

一旦恶意应用程序获得授权,攻击者可以:

  • 下达买卖订单,
  • 滥用用户资金,
  • 并可能引发大规模的财务损失。

例如,攻击者可以强制所有被攻陷的账户购买同一只股票,制造人为需求并操纵市场。如果有足够多的受感染账户,这将变得极其危险。

最终,在提供了完整可用的PoC后,严重性等级得到了提升。

他们如何修复了该漏洞

为了修复这个问题,经纪商增加了一个额外的安全检查:

  • 当后端生成session_id时,会返回一个唯一的令牌
  • 该唯一令牌专门映射到发起身份验证流程的用户
  • 在“允许”请求期间,此令牌必须匹配。

由于这种绑定关系,攻击者无法再预先生成一个session_id并在CSRF攻击中重用它。攻击者无法获知特定于受害者的令牌,因此恶意应用程序的自动链接不再可能实现。
CSD0tFqvECLokhw9aBeRqtXyRn0lX+xpHdlLhI/WOecAJbuabhGDzexX6HlErYgcV9KrBOYn6zUXLDaBwk3e9PQ04eMbh3+JhiGsfpEC8GTdAzXD1c1nw3M953/SmUSKPHMcswbLTw6cmyCnMXDIQA==
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/28 9:48:13

太流批了,神仙工具,值得收藏

今天给大家推荐两款软件,一款图吧工具箱,一款是某大师绿色版,有需要的小伙伴可以下载收藏。 第一款:图吧工具箱 图吧工具箱,是一款专为硬件爱好者和系统维护人员打造的免费开源工具合集,集成硬件检测、性能…

作者头像 李华
网站建设 2026/1/28 9:46:44

焊缝焊接处裂纹气孔飞溅缺陷检测数据集VOC+YOLO格式1494张6类别

注意数据集中有部分增强图片数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1494标注数量(xml文件个数):1494标注数量(txt文件个数…

作者头像 李华
网站建设 2026/1/28 9:46:21

【第三套】好难!笔试3门,复试占比很高!

26复试课程已上线~另外还有线下复试集训营。1V1的简历修改自我介绍修改模拟面试1V1直系学长的复试专属讲解等内容。 祝大家复试顺利,成功上岸! 写在前面 为了帮助大家顺利通过最后一关,今天开始我将每天更新一套复试真题!复试真…

作者头像 李华
网站建设 2026/1/28 9:42:09

Creo许可证管理绩效评估指标体系

Creo许可证管理绩效评估指标体系:为什么它很重要?作为一名长期从事CAD软件管理工作的技术人员,我经常会遇到一个问题:如何衡量我们所使用的Creo许可证管理系统的运行效率和使用效果?是在企业规模扩展、项目需求增多的情…

作者头像 李华
网站建设 2026/1/28 9:41:07

参数运行文档的使用

摘要对于给定的光学系统,通过控制和调整选定的参数来检查其性能是很有帮助的。VirtualLab Fusion 提供了一个完全灵活且计算效率高(通过并行化)的参数运行功能,使用户能够指定不同的参数变化方式。举个例子,它可以用于…

作者头像 李华
网站建设 2026/1/29 23:01:59

2026必备!本科生毕业论文必备!9款AI论文网站深度测评

2026必备!本科生毕业论文必备!9款AI论文网站深度测评 2026年本科生论文写作工具测评:为何需要这份榜单? 随着AI技术的不断进步,越来越多的本科生开始借助AI工具辅助论文写作。然而,面对市场上琳琅满目的A…

作者头像 李华