从失败的"竞态条件"测试到赢得漏洞赏金的技术实战

本文详细记录了作者如何通过坚持不懈的测试,在一个学校评分功能中发现并利用竞态条件漏洞,最终获得中等严重级别漏洞赏金的全过程,包含具体的技术测试步骤和漏洞分析。

嘿,朋友们 👋

我是Ursa。六个月前我开始进行漏洞挖掘。

图片由Andy Holmes在Unsplash上发布

这就是好奇心和坚持如何将一个"失败"的测试变成了我的第一个中等严重级别赏金——一个我差点错过的竞态条件。如果你是初学者或非技术型猎人,这篇报告就是为你准备的。让我们走一遍从发现到披露的简短路径。

第0步——选择目标:

我选择了一个具有许多功能的目标(我们称它为target.com)。我计划每天测试一个功能,专注于我最熟悉的领域:IDOR、JWT和业务逻辑缺陷。

第1步——找到完美位置

我刚学习了竞态条件并想尝试一下。当我访问一个学校评分页面时,我打开了Burp Suite并重新加载。没有出现有趣端点,所以我尝试通过快速点击喜欢和不喜欢按钮来进行竞态测试。速率限制系统阻止了我。

第2步——测试端点

在Burp历史记录中,我找到了POST端点:test.com/schools/{id},请求体为{“type”:1456,“value”:true},基本上是一个喜欢请求。我首先检查了IDOR和JWT错误配置,但没有发现任何问题。

第3步——挫折

我将请求发送到Repeater,复制了约30次,将它们分组,并使用Send group(并行)。响应返回"Done",但无论我刷新多少次,UI都没有显示任何变化。

攻击响应

第4步——等待一分钟:

我们都经历过"等待一分钟"的阶段,那是漏洞自我显现的小暂停。在发送并行请求前后,我手动喜欢和不喜欢了同一个类别。之前,只有一个投票会被记录。在运行序列并刷新页面后,瞧——总评分跳升了,重复这个过程让我可以随意提高它。

影响:

  • 操纵默认排序(总票数)
  • 用户对结果失去信任
  • 其他人可以作弊排名

严重程度:中等

CVSS向量:AV:N / AC:L / PR:L / UI:N / S:U / C:N / I:L / A:N(评分:4.3)

关键要点:

  • 首先映射端点。了解正确的API路径有助于找到漏洞
  • 保持坚持。不要在一次失败测试后放弃目标
  • 安静探测。竞态条件隐藏在静默或正常响应后面

感谢阅读!我计划很快分享更多报告。如果你喜欢这类内容,请随时关注。—— Ursa

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