您好朋友,我对 bug 赏金计划感到沮丧几天后,我决定尝试 Bugcrowd 上的另一个公共程序。这有点困难,但我学到了很多 ()。mrhashimamin
we’ll get into that in another write-up; just updating you with the latest
无论如何,在遇到很多重复和 N/A之后,我在 Facebook 上结交了一个在 HackerOne 上有的新朋友。我们称之为 。private program
thegoodshop.com
好店?
这是一个适用于二手产品的简单应用程序。您可以将商品添加到购物车并购买,或在现场拍卖中出价,然后付款并获取您的商品。e-commerce
I — 密码重置令牌不会过期
不,不,这不是你想的那样。我不再是那个新手黑客了 xD。让我告诉你这背后,从主要开始 : 测试 .我的朋友指出了一些有趣的事情:the story
auth functions
sign-in, sign-up, password reset, and OAuth
“The reset tokens don’t expire — how can we make that useful?”
再深入挖掘,我们发现 .那么,这有什么大不了的呢?好吧,我们决定在我们的一个测试帐户上,然后尝试使用 .你猜怎么着?成功了!reset tokens don’t expire until you request a new one
change the email address
the old reset token
所以,我们想出了一个非常酷的场景:
1- 当受害者创建帐户时,他会在他的 .
2- 受害者到一个新的(例如,从 到 ),因为受害者知道攻击者 .
3- 已发送到 的攻击者使用此链接重置密码。
4- 攻击者成功。reset/create password
registered email
changes their email
victim@old.com
[email protected]
has access to their old email address
has access to the latest password reset link
[email protected]
changes the victim’s password
是的,起初,我们认为他们可能会将其关闭为 Informative 或 N/A,但他们实际上接受了它。不错的收获,因为这个场景有点现实。low
II- 我可以取消 thegoodshop.com 上的所有购买
几天后,我专注于其他功能:.add to cart, complete order, and view purchases
让我为您解释一下购买流程:
1- 一个好的用户看到他们想要的产品,所以他们把它添加到他们的购物车中。
2- 要完成购买,他单击 。
complete order
3- 现在,产品是给用户的,他们必须为此付费——否则,就要拥有 .
purchases list
their account could be blocked
uncommitted purchases
那么,如何知道 或它实际上是如何发生的呢?thegoodshop.com
uncomitted purchases
在步骤 3 中,在您之前。将向终端节点发送一个 POST 请求,以将此订单标记为 until until you pay for it。pay for the product
/api/webapi/shopping/ordercheckout/createuncommittedpurchaseorder
uncommitted
但是,如果您多次发送此请求,则事情是这样的:
1- 从您的帐户,所以您。
purchase will disappear
won’t be able to pay for it later
2- 一段时间后,您的帐户拥有 .
will get blocked
too many uncommitted purchases
因此,我使用我的第二个帐户制作,并用另一个帐户中的帐户替换 。它奏效了!another order
purchaseOrderId
但有这样一件事:该计划的政策规定 .所以,我挑战自己,思考,而这正是发生的事情。any IDOR depending on GUID/UUID would be changed to low severity
“You really need to find this Id”
我爬了网站,运行了一些购买功能,然后回到我的 .我搜索了 — 并且找到了我想要的。的另一个易受攻击的参数 !as a regular user
Burp history
purchaseOrderId
IDOR
当您尝试购买产品时,将生成 a 并将其绑定到 .当您尝试完成此购买时,应用程序会向此终端节点发送一个 以检索 ,然后使用该 ID 完成该过程。
transactionId
purchaseOrderId
GET request
transactionId
purchaseOrderId
所以,我的攻击场景是这样的:
制作一个简单或使用获取任何有效的 (0:999999999),检索所有 ,然后检索 上的任何采购订单。
Python script
macros and Intruder in Burp Suite
transactionId
purchaseOrderIds
uncommit/stop
thegoodshop.com
起初,我认为自动化只是基于拥有 ,但他们提到这是由他们手动控制的。但是,我们将其报告为关键 xD,但他们将其接受为 。无论如何,我们对此很满意。blocking user accounts
uncommitted purchases
medium
这就是我这次得到的。我希望你觉得这篇文章有用。谢谢,并继续破解 3>
原文始发于微信公众号(安全狗的自我修养):为了 $$$ 而黑客攻击电子商务:IDOR 等
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论