扫描仪显示清洁。折扣码仍可使用 40 次。 笔记

扫描仪显示清洁。折扣码仍可使用 40 次。

对结账流程的自动化安全扫描未发现诸如 SQL 注入或跨站脚本等传统漏洞。一名初级渗透测试人员正准备根据扫描结果将该次 engagements 标记为无重大发现。然而,一名团队成员注意到一个用于应用折扣码的端点,在订单确认之前并未使该折扣码失效。这一设计缺陷意味着单次使用的折扣码可被并发多次兑换。通过并发发送相同的请求,一个单次使用的 50% 折扣码在数秒内被兑换了四十次。此类漏洞属于竞态条件(race condition),其成因在于检查代码有效性与将其标记为已使用之间存在时序间隙。自动化扫描器无法检测竞态条件,因为它们按顺序而非并发地测试请求。易受攻击的端点通常涉及“先检查后执行”(check-then-act)模式,例如兑换优惠券或提取资金。要利用竞态条件,请求必须同时发送而不仅仅是快速发送,以最小化网络抖动。Burp 的竞态条件标签页或 Turbo Intruder 等工具正是为此目的而设计。证明竞态条件存在的依据在于系统的最终状态,例如折扣码被应用的次数,而不仅仅是成功的响应代码。此类业务逻辑漏洞会被扫描器遗漏,需要人工调查并发应用行为。Codelivly 的资源与实验室专注于这些超越自动化扫描能力的先进漏洞。