劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)

好久没有发文了,今天分享我近期发现的一个 Paypal 越权漏洞(IDOR)。利用该漏洞,我可以劫持任意 Paypal 企业账户的子账户(二级账户),从而可发起从受害者企业账户到攻击者控制账户的未授权转账操作。理论上来说,漏洞原因在 Paypal 中发生了不安全的直接对象引用行为(IDOR)。

Paypal 企业账户和子账户介绍

Paypal 企业账户(Business Account)也叫 PayPal 商业账户,是为了方便各种大公司企业用户使用而开发的,具有 PayPal 高级账户的所有功能和限制,为方便交易和商业行为,企业账户下可以创建隶属于企业员工,但又具备各种权限的子账户(Secondary Account),如设定其权限为只能查看余额,或者只能退款,或者只能提现等等。

但 Paypal 企业账户下的子账户还有一项权限,那就是可以把企业账户中的资金转账到任何子账户指定的其他账户中去。所以,基于这种权限,如果能劫持企业账户下的子账户,就可以从企业账户转钱出来,实现任意资金操作了,不是吗?说搞就搞。

动手测试

动手之前,我用 victim@gmail.comattacker@gmail.com 注册了两个企业账户以便测试。

首先,在受害者邮箱 victim@gmail.com 绑定的企业账户下,我创建了一个用户名为 victim1234 的子账户;

接着,在攻击者邮箱 attacker@gmail.com 绑定的企业账户下,我创建了一个用户名为 attacker1234 的子账户;

现在,以攻击者一方为例,我们来观察一下企业账户下涉及的子账户(attacker1234) URL 情况,我们先从企业账户中点击去到子账户中看看,如下:

https://www.paypal.com/businessmanage/users/1660971175791245038

结尾的 id 号 1660971175791245038 代表的就是 attacker@gmail.com 绑定的企业账户。在此子账户查看操作过程中产生了一个如下的 PUT 请求:
[code] * * * *

[code]
PUT /businessmanage/users/api/v1/users? HTTP/1.1Host: www.paypal.comConnection: close[{"id":"1660971175791245038","accessPoint":{"privileges":["MANUAL_REFERENCE_TXN","VIEW_CUSTOMERS","SEND_MONEY"],"id":"4446113495","accounts":["attacker@gmail.com"]},"roleID":0,"roleName":"CUSTOM","privilegeChanged":true,"privilegeSecondaryName":"ttt ttts"}]
[/code]
[/code]

仔细观察并测试一番过后,我发现,上述这个 PUT 请求中第一个 id 字段,即 1660971175791245038 这里可以替换为任意随机数值(如 asdfjdsf),第二个 id 字段,即 446113495 这里,它代表了子账户 id,漏洞就出在这里的第二个 id 字段。

由于,这第二个 id 字段只是简单的数字递增或递减,所以它完全是可枚举的,那么,对于攻击者来说,只要把它更改为比如 446113496,此时,如果假设该 id 对应的就是受害者企业账户下的子账户 victim1234,那么,攻击者就能轻易在他的企业账户子账户页面中(https://www.paypal.com/businessmanage/users),查看到另一企业账户下的受害者子账户信息了。

也就是说,比如,攻击者可以枚举出 446113495 至 446113999 的所有子账户,然后在其在其企业账户的子账户管理页面下都能查看到这些子账户,那么,终极招数就是攻击者只需通过这种方式的子账户信息查看,把相应子账户密码进行修改,那就可以实现账户劫持了,完美!

漏洞实现效果就是,攻击者可以通过密码修改方式登录受害者企业账户下的受害者子账户,进行任意未授权的转账操作。

漏洞奖励

漏洞上报后,Paypal 官方进行了及时的修复,好在经检测未发现任何该漏洞的滥用行为,我也获得了 Paypal 奖励的 $10,500。

劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)参考来源:whitehathaji,clouds 编译整理,转载请注明来自 FreeBuf.COM*

劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)

精彩推荐

劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)

劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)

劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)

劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)

***劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)劫持任意 Paypal 企业账户子账户实现未授权转账操作($10K)***

来源链接:mp.weixin.qq.com