最近,Cybernews分析人员称,他们发现了和PayPal相关的6个高危漏洞,攻击者利用这些漏洞可以实现:绕过PayPal登录后的双因素认证(2FA)、使用其内部智能聊天系统发送恶意代码。然而就在上报了这些漏洞后,Cybernews遇到了无休止拖延、无人回应、含糊响应和不被重视的情形。以下是Cybernews就发现的6个漏洞进行的说明,抛开是非对错,我们只来围观其技术姿势就好。

漏洞1:登录后的PayPal双因素认证(2FA)绕过

在对 PayPal for Android (v. 7.16.1)的安卓APP分析中,我们发现PayPal对用户手机和邮箱的身份验证存在登录后的2FA认证漏洞。也就是说当攻击者以其它方式获取了受害者的密码凭据实施登录后,由于PayPal判定攻击者使用的手机设备或IP地址与之前受害者的不同,从而会发起一个2FA方式的身份验证,此时,PayPal会通过短信或邮箱发送一个验证码给当前登录的攻击者,只有正确输入该验证码,登录才能继续往下真正有效进入受害者账户。

PayPal的2FA采用了Authflow方式,当用户从新手机、新位置或新IP地址执行账户登录时就会触发2FA验证。在漏洞测试过程中,我们用抓包拦截代理(Charles)观察PayPal APP的具体网络活动,经过一番研究,我们发现了一个提权Token,可以用它来绕过上述登录后的2FA认证。(由于漏洞目前尚未修复,在此不作过多细节描述)

关于该漏洞我们的关注点是:目前黑市中存在大量PayPal用户密码凭据信息泄露,如果恶意攻击者买下这些信息,然后配合上述我们发现的漏洞,就能轻松绕过PayPal登录后的2FA认证,进入受害者账户,对广大PayPal用户的账户安全形成威胁。但是,PayPal却不这么认为,他们在回复邮件中称”这种形为不会导致任何安全问题“(there does not appear to be any security implications as a direct result of this behavior)。

漏洞2:未对手机验证方式实施动态口令

我们分析发现,在PayPal新推出的一个应用系统中,它会检查注册手机号码是否为当前用户账户所持有,如果不是,则会拒绝进一步的登录。在该系统中,当用户用手机号码进行账户注册时,会向PayPal后端服务器api-m.paypal.com执行一个预录式呼叫或短信请求以进行用户状态确认。这里存在的问题是,我们可以更改其中的预录式呼叫确认方式,实现对用户注册绑定手机号码的更改。危害是由于可以不通过短信验证码,很多骗子可以利用该漏洞,绕过电话身份验证,创建欺诈账户。

我们上报漏洞后,刚开始PayPal的安全团队还是比较重视的,但是经过几次沟通交流,他们干脆就不回复了。现在的情况是,PayPal直接把该漏洞报告关闭了。

漏洞3:转账安全措施可绕过

为了避免欺诈和其它恶意行为,PayPal在应用中内置了很多保护用户钱款的转账防护措施,来针对以下用户钱款操作:

使用一个新的电子设备进行登录转账;

从一个新的地理位置或IP地址实行转账;

改变你通常的转账模式;

你当前的转账账户刚注册不久。

当以上述一种或几种行为发生时,PayPal在触发转账防护措施过程中,会抛出一些错误,其中包括:

你需要链接到其它新的支付方式实现转账(You’ll need to link a new payment method to send the money)

你的转账操作被拒绝,稍后请重新尝试(Your payment was denied, please try again later)

我们分析发现,上述的转账错误可以被枚举,如果与漏洞1(登录后的PayPal双因素认证(2FA)绕过)配合利用,就可以绕过转账安全防护措施,登录一些受害者账户,实现钱款操作。而当我们提交了该漏洞之后,PayPal却声称,由于这需要与其它漏洞配合才能产生实际威胁,因此不属众测范围之内。

漏洞4:用户账户命名可更改

默认来说,针对用户名更改,PayPal只允许用户一次更改其中的1-2个字母,之后就不能再更改了。但是,我们发现,在当前PayPal.com网站应用中,我们可以更改完整的用户名,比如下面的从“Tester IAmTester” 更改为“christin christina”

我们通过拦截用户名更改请求,每次替换其中的1-2个字母,可以无需任何验证就可实现完整的用户名更改,甚至可以在用户名字段中加入表情标志等unicode符号。漏洞危害是,如果攻击者可进行任意的用户名更改,那么会与,如果与漏洞1(登录后的PayPal双因素认证(2FA)绕过)配合利用,可劫持其他重名PayPal。漏洞提交后,PayPal回应称该漏洞已有其他白帽上报过,属于重复报。

漏洞5:自助聊天系统存储型XSS漏洞

在PayPal的自助聊天系统SmartChat中,用户可以找到一些通常问题的答案,我们研究发现SmartChat对用户输入缺乏验证,可以在聊天框中提交一些程序脚本,导致可以解析出程序按钮或框架。

我们可以用中间人攻击MITM代理对上述网络流量进行抓包拦截,在其中附加进恶意构造的Payload,深入攻击可获取受害者账户信息。PayPal对该漏洞的回应是,这不是一个外部可利用的漏洞,所以不算安全问题,最后漏洞分类为“不适用”(Not Applicable)。

漏洞6:安全问题输入中存在持久型XSS

该漏洞与漏洞5类似,原因在于PayPal未对安全问题的用户输入答案实施过滤,导致存在XSS,我们可以使用MITM代理对其抓包构造,实现XSS触发。下图为我们向其中注入了大量可点击的链接:

漏洞危害是,攻击者可以在其中嵌入以下链接:

提示“Download the new PayPal app” 的恶意APP下载链接;

更改转账收款人的邮箱地址;

对受害者进行键盘记录监听收集***信息。

PayPal对该漏洞的回应称已有其他安全人员提交过该漏洞,而就在同一天,PayPal对该漏洞进行了修复。

Cybernews认为的观点

Cybernews阐述攻击者的以下攻击场景为:

在黑市买到包含PayPal账户密码凭据的信息,比如这里能以$150美金买到一个价值$5,000的PayPal账户

使用漏洞1绕过PayPal的登录后2FA认证;

使用漏洞3绕过转账安全措施,可以从账户绑定的***实施转账

攻击者还可以使用漏洞1绕过登录后2FA认证,再使用漏洞4更改其账户持有者的PayPal用户名。

对于攻击者和骗子来说,他们会有更多的动机和方式来对这些漏洞进行利用,然而但对PayPal本身来说,他们却认为这些都不是问题。

*参考来源:cybernews,clouds 编译整理,转自 FreeBuf