
OkCupid可根据会员自身填写的相关信息,经后台算法匹配,推荐适合的约会对象,完成配对牵线。当然了,个人信息不仅方便了恋爱配对,也一直是黑客眼中的宝藏。近期,Checkpoint安全团队就针对OkCupid的移动应用和网站平台安全性开展了测试,发现了以下严重漏洞:
APP存在会员个人敏感信息泄露;
可用受害人身份执行恶意操作;
可窃取用户会员资料、以及爱好个性等隐私数据;
可窃取用户身份校验Token、用户ID、注册邮箱等信息;
可窃取用户数据并转发至攻击者控制端。
移动应用APP平台
Checkpoint对OkCupid的安卓APP(v40.3.1)进行了逆向分析,在此期间发现其APP会开启一个WebView组件(可用来在WebView窗口环境中执行JS代码),并会加载形如https://OkCupid.com, https://www.OkCupid.com, https://OkCupid.onelink.me等样式的远程链接。
危险的深度链接
Checkpoint发现OkCupid APP存在“https://OkCupid.com”和“OkCupid://”通用样式的“深度链接”功能:

反射型XSS漏洞
Checkpoint还发现了OkCupid 主站https://www.OkCupid.com存在一个XSS漏洞,XSS注入点位于用户资料设置处:
https://www.OkCupid.com/settings?section=<value>
其中的section参数存在可被注入JS代码的问题,在OkCupid APP请求交互时可触发XSS。由于上述我们提到WebView被开启后可执行JS代码,因此这里我们利用该XSS漏洞,在经身份验证的受害者APP中触发了一个空弹窗:
敏感信息泄露 & 可用受害人身份执行恶意操作
基于上述的XSS漏洞和OkCupid使用的深度链接,我们可用OkCupid://方式启动OkCupid APP,然后在section参数处构造加入恶意JS脚本代码进行深入测试。以下图例为最终构造的XSS Payload,其可以从攻击者控制端加载jQuery和JS代码,上半部份为原始XSS Payload,下半部份为URL编码后的XSS Payload:

请求发出后,会在OkCupid服务端的WebView窗口环境中注入以下JS代码:
由于XSS payload中会加载攻击者控制端中的js脚本文件script.js,该脚本文件包含以下三种功能模块,可以窃取渗漏受害者的用户信息:
steal_token – 窃取受害者用户的身份验证Token、oauthAccessToken、userid,包含注册邮箱在内的用户个人信息(PII)等;
steal_data – 窃取受害者用户个人资料、隐私数据、爱好个性等信息;
Send_data_to_attacker – 把上述窃取的数据信息发送到攻击者控制端。
steal_token 功能模块


Steal data模块


Send data to attacker模块
该模块会向攻击者控制端发送一个POST请求,其中会包含steal_token和steal_data模块所有窃取数据,以下为该POST请求截图:
由于攻击者可以窃取受害者的身份Token和用户ID,因此,可用受害人身份执行恶意操作,如向其他用户发送虚假信息、更改个人资料,因为steal_token模块中包含了以下受害者信息:
身份校验令牌Authentication token、oauthAccessToken;
User id、userId
Note:由于Cookie中设置了HTTPonly属性,因此攻击者不能完全劫持受害者账户。
网站系统漏洞
配置错误的CORS策略可导致敏感信息泄露
在测试中Chekcpoint团队发现,OkCupid的API接口服务器api.OkCupid.com存在不当的CORS策略配置,可以导致跨源请求。Chekcpoint构造了origin为https://OkCupidmeethehacker.com的虚假请求源,向OkCupid API接口服务器api.OkCupid.com发起了GET请求:
可见,OkCupid API接口服务器api.OkCupid.com未恰当校验OkCupidmeethehacker.com的origin有效性,就做出了成功的响应,并且还在响应中返回了有效的Access-Control-Allow-Origin头消息:
Access-Control-Allow-Origin: https://OkCupidmeethehacker.com
Access-Control-Allow-Credentials: true


以下为用受害者身份(user_id和access_token:)请求/profile/路径获得的受害者个人信息:
以及用受害者身份(user_id和access_token)请求/1/messages/路径获得的受害者所发信息:
总结
最近几年,随着在线社交交友APP应用的兴起,线下生活逐渐向线上数据转型成熟,尤其是在全球疫情期间,保持社交距离的新常态更让在线社交APP风靡流行。然而,在这些受欢迎的APP应用中,却存在着各种个人信息、隐私数据泄露的安全隐患,对隐私和数据安全的迫切需求已经变得尤为重要。
参考来源:
来源:freebuf.com 2020-10-30 16:18:18 by: clouds





Steal data模块





