漏洞细节 这是我作为漏洞赏金平台上直接向上游提交重要漏洞的经历故事。 “Alhamdulillahi rabbil alamin”(感谢真主,全世界的主宰)无疑是我要说的第一句话! 这是我作为漏洞赏金平台上直接向上游提交重要漏洞的经历故事。 我是如何找到那些重要漏洞的呢?让我们首先谈谈基础知识。 你有 web/app 编程的先验经验吗? 当然你对 CRUD 是熟悉的!但如果你对此还不了解,CRUD 用于将数据处理到数据库中 [1]。 CRUD 代表创建(Create)、读取(Read)、更新(Update)和删除(Delete),这对于使用关系数据库实现健壮应用至关重要 [2]。然而,如果应用程序过于复杂,其背后的系统就不再是简单的 CRUD。 CRUD(创建、读取、更新、删除)概念与发现漏洞相关,因为它提供了一种有结构的方式来与应用程序中的数据进行交互。通过了解如何创建、读取、更新和删除数据,您可以识别出应用程序行为中的潜在漏洞或不一致之处。 让我们更仔细地看看我如何应用 CRUD 基础知识来绘制一个菜单/功能的映射,特别是“报告”菜单。以下是它包括的内容: 创建报告:识别创建新报告的功能。 编辑报告:查看如何修改现有报告。 关闭报告:调查关闭或完成报告的流程。 创建评论:理解用户如何向报告添加评论。 编辑评论:评估修改现有评论的能力。 创建摘要:分析创建摘要的方式。
我是否一贯地做到了呢?我是否应该在一个菜单上测试各种操作中的漏洞?是的,这就是几天前我经常在 HackerOne 上四处潜伏(侦察)的原因,每天都专注于一个菜单。我想找到 IDOR!以下是我对可能发生的 IDOR 的假设(这些只是假设!): IDOR 编辑受害者报告 IDOR 关闭受害者的报告 IDO 创建对受害者报告的评论 IDOR 删除评论 直到 IDOR 编辑受害者报告摘要。
现在你刚刚看到了我为 IDOR 攻击创建的攻击场景是什么样的(关键:在受害者不知情的情况下执行相同的操作,对吧?)。 在涉及 VAPT(漏洞评估与渗透测试)时,这个阶段属于“信息分析和规划”。 在信息分析和规划阶段,测试人员分析扫描期间识别出的风险,以确定一旦受害者被利用,风险将发生的原因和后果。 渗透(利用)阶段则专注于外部真实风险 [3]。然而,在漏洞发现的背景下,我分析了报告的特性,并制定了直接攻击的计划(如果上下文有些远离,我很抱歉)。 攻击与渗透,在这个阶段,我开始直接在目标上进行预先准备的测试场景,例如从“IDOR 编辑报告”到“IDOR 编辑评论同时包含文件”,并尝试绕过防御措施!然而,结果并不如预期(我以为它足够安全!),因为我总是收到“was_successful”: false 的响应。 时间已经很晚了,眼睛也有些疲惫,明天再来吧! ???????????? 第二天,周末到了,我度过了一个更长的夜晚来完成所有的场景,但是我仍然没有找到漏洞,直到最后一个场景“编辑摘要”,我没想到我能够使用其他账户的文件附加到攻击者的摘要报告上,无论是在草稿还是已提交的报告上都是如此。 我立即写了一份完整的报告,并发送给了 HackerOne 的漏洞赏金计划! 之后会发生什么?我一边祈祷,一边劝告自己“这是一个有效的报告!” 但是,我还是不太相信,因为那里的活动非常频繁,即使是顶级感谢的账户也可能对同一个账户多次报告漏洞,你确定我的发现没有被他们报告过吗?你确定没有重复的报告吗? 是的,3天过去了,我问了一下“有更新吗?”考虑到承诺的时间是3天。第四天,我的报告收到了工作人员的评论,我仍然不确定!通常,如果是重复的报告,会立即关闭,幸运的是,我的报告是有效的! 第二天,他们给出了一份惊人的赏金! 摘要功能是从什么时候开始存在的?我感到非常幸运能在那里找到它。原谅我的啰嗦,这只是一个故事,技术细节在HackerOne报告中。下次再见! author: KreSec 漏洞点评IDOR的本质是逻辑漏洞,跟框架无关,如果开发人员没有对全部功能非常理解,那么很可能在某一个小地方出现问题,导致能够引用到其他地方的资源,造成IDOR(不安全的对象引用),通过这个实际的漏洞案例,相信能增强各位小伙伴挖掘到IDOR漏洞的信心。
|