利用条件竞争突破折扣券仅能使用一次逻辑限制

杳若   ·   发表于 2023-08-31 17:40:12   ·   学习杂记

Portswigger练兵场之条件竞争

?条件竞争-突破一次逻辑限制

Lab: Limit overrun race conditions

?实验前置必要知识点

利用条件竞争有概率超过应用程序的业务逻辑的某种限制

例如,考虑一个在线商店,它允许您在结账时输入促销代码以获得订单的一次性折扣。若要应用此折扣,应用程序可以执行以下高级步骤:

  1. 检查您是否尚未使用此代码。
  2. 将折扣应用于订单总额。
  3. 更新数据库中的记录以反映您现在已使用此代码的事实。

如果以后尝试重用此代码,则在进程开始时执行的初始检查应阻止您执行以下操作:

如果以前从未应用过此折扣代码的用户尝试在几乎完全相同的时间应用两次,会发生什么:

应用程序通过临时子状态转换;也就是说,在请求处理完成之前,它进入然后再次退出的状态。在这种情况下,子状态在服务器开始处理第一个请求时开始,在更新数据库以指示您已使用此代码时结束。

更多内容已被隐藏
主题内容你需要付费可见 (点击购买) 售价:10 金币

打赏我,让我更有动力~

0 条回复   |  直到 2023-8-31 | 459 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.