点份外卖竟发现高危漏洞:CVE-2025–45968漏洞分析与Python自动化利用

5 阅读7分钟

Pedindo um lanche e descobrindo uma CVE — PoC CVE-2025–45968

Alexandre Jr (r3dd1t) 6 min read · Apr 11, 2025

152 Share

你能想象在周五晚上,第五个工作日结束,工资到账,你正想吃个外卖(在里约热内卢我们称之为“podrão”),却在点餐过程中发现一个可能成为CVE的漏洞吗?嗯……这正是发生在我身上的事!

识别并理解漏洞

我联系了我常去的那家餐厅,但这次是我第一次点外卖——之前我只在店内用餐。

图片描述转存失败,建议直接上传图片文件

访问网站并完成订单后,我被重定向到一个订单跟踪/状态页面。我注意到了一些引起我兴趣的东西。重定向的URL包含一个名为 hash 的参数,显然用于引用订单ID。

该参数的值是Base64编码的。解码这个值后,可以识别出它简单地代表了订单的数字ID(例如:MjAwMDE= 对应 20001)。这表明标识符只是被模糊化了,并没有得到真正的保护。

URL示例: https://site.com.br/lanche/pedidos/?hash=<ID-Base64>

利用漏洞

因为只是被Base64模糊化,我拿我的订单号,只改了最后一个数字,重新用Base64编码并发送。令我惊讶的是,竟然可以查看到另一个客户的订单摘要。

图片描述转存失败,建议直接上传图片文件

发现了什么漏洞及其影响?

如上所述,该应用程序没有正确的访问控制验证,这导致了 IDOR 漏洞,该漏洞根据OWASP Top 10被归类为 访问控制破坏

简单来说,不安全的直接对象引用是一种漏洞,当攻击者能够通过操纵Web应用程序URL或参数中使用的标识符来访问或修改对象时,就会出现这种漏洞。它之所以发生,是由于缺乏访问控制检查,无法验证用户是否应有权访问特定数据。

在这种情况下,利用导致了某些可能敏感信息的暴露,例如:姓名、手机号码和完整地址,以及订单信息。这些信息可能构成个人数据泄露,根据具体情况和意图,可能会产生严重的法律影响,给公司带来财务和声誉损失。在巴西,LGPD(通用数据保护法 — 第13.709/2018号法律) 规范了个人数据的处理。此外,这些信息可用于欺诈(例如WhatsApp骗局或虚假购物),直接对用户产生影响。

真实案例报告

我的一个好朋友在看到我的帖子后,报告了他所在地区的一个真实案例,很可能就是利用此漏洞进行WhatsApp欺诈,证实了其中一种可能性。

了解软件的所属权

在发现并验证漏洞后,我试图了解该系统是餐厅的专有应用程序还是一项服务,以便知道如何进行报告。如果它是餐厅的专有应用程序,我会亲自向负责人提交并当面报告;如果是一项服务(事实如此),我则会向Mitre报告以生成一个CVE

在查找服务提供商后,我找到了制造商的网站。他们自己的网站上有一个横幅,说明他们拥有超过3万名客户,也就是说,这个漏洞可能影响着所有这些客户,因为我只找到了该产品的一个版本,即 1.0

该公司提供POS(销售点)服务,这正是可能被利用的产品。

理解自动化利用脚本

在识别出漏洞后,我使用Python创建脚本自动化了整个利用过程。该脚本自动化了最初手动完成的整个过程。它生成000到999范围内的随机参数值,将每个值进行Base64编码,向应用程序发出请求,并在过程结束时将所有响应保存到一个HTML文件中。由于该脚本仅用于自动化概念验证过程,我固定了前两位数字20,只随机化接下来的3位数字,即20<随机数>,但这可以在代码中轻松更改。

实际上,就像这样:

  • 第1次尝试:20000
  • 第2次尝试:20001
  • 第3次尝试:20002
  • ...
  • 第999次尝试:20999

由于应用程序对于不存在的订单也返回200 OK状态码,因此加入了一些条件语句来过滤结果。这样,脚本只保存那些特定的div(包含订单信息的那些)不为空的响应,使输出更加精确和有意义。

执行脚本并保存响应

图片描述转存失败,建议直接上传图片文件

用另一个脚本优化输出

打开保存的输出文件后,我发现即使只过滤了包含信息的div,信息阅读起来还是很困难。

图片描述转存失败,建议直接上传图片文件

因此,我创建了第二个脚本,它读取这个初始输出文件,进行解析,并提供了一个更友好(甚至可能过于友好了 🤣)的前端界面。

图片描述转存失败,建议直接上传图片文件

我使用第一个脚本生成的输出文件执行了这个脚本。

图片描述转存失败,建议直接上传图片文件

这就是结果。

图片描述转存失败,建议直接上传图片文件

嗯……那么CVE呢?

好吧,我已经向Mitre提交了报告,现在正在等待回复。我上一次的CVE花了4个月才得到验证,所以需要耐心……很多耐心!

图片描述转存失败,建议直接上传图片文件

一旦有消息,我会更新这篇文章。

CVE发布

如我所承诺的,带来关于报告的CVE的更新。在提交报告大约一个月后,我收到了回复,获得了分配的CVE ID。今天,2025年8月25日,CVE的状态终于从 RESERVED 变为 PUBLISHED

Mitre根据 CVSS v3.1 将该漏洞的影响评为 9.8,这意味着该漏洞被归类为 CRITICAL。下面提供了关于该CVE的更多技术信息。

技术信息摘要

CVE-2025–45968

描述: System PDV v1.0 中的一个问题允许远程攻击者通过 URL 中的 hash 参数获取敏感信息。该应用程序存在不安全的直接对象引用漏洞,这是由于访问该参数引用的对象时缺乏适当的授权检查所致。这使得能够直接访问其他用户的数据或未经适当授权的内部资源。成功利用此漏洞可能导致机密信息泄露。

OWASP Top 10 类别: A01:2021 — 访问控制破坏

影响: 暴露敏感和机密信息,例如姓名、电话号码和地址。此类信息可能构成个人数据泄露,根据具体情况和意图,可能会产生严重的法律影响,给公司带来财务和声誉损失。在巴西,LGPD(通用数据保护法 — 第13.709/2018号法律)规范了个人数据的处理。

CVSS 3.1: 9.8 — 严重 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

版本: System PDV v1.0

参考文献

  • Insecure Direct Object Reference Prevention — OWASP Cheat Sheet Series
  • A01 Broken Access Control — OWASP Top 10:2021
  • CVE Record: CVE-2025–45968
  • NVD — CVE-2025–45968 CSD0tFqvECLokhw9aBeRqm1Fv2L8SdtJyWh4rK9jQfcj481eRATmKHVlPudXoto+shG+dimP+AXAhKfsvnoGmZYVVv8jYIaqajEM2/oe+v+r03Wyq3yz7BgGaeXR2IFk