主页 > 网络知识 > Mail.ru用户隐私信息泄漏的XSS漏洞分析

Mail.ru用户隐私信息泄漏的XSS漏洞分析

 

Mail.ru用户隐私信息泄漏的XSS漏洞分析

 

本文讲述作者在Mail.ru APP某个功能点上发现的Stored XSS漏洞,利用该漏洞可以从Mail.ru相关的应用或邮箱管理软件myMail iOS中窃取用户邮件交流记录、通讯录等隐私信息。漏洞最终获得了Mail.ru官方奖励$1000。

Mail.ru是俄罗斯最大的电邮和网络服务平台,是俄罗斯最大的门户网站,也是俄罗斯第一个成功在伦敦上市的互联网公司。

漏洞情况

漏洞源于Mail.ru的某个功能点对SVG图片文件未做安全检查,可以导致XSS,如在以下SVG文件中插入XSS Payload:

<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg"> <polygon points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/> <script type="text/javascript"> alert("XSS"); </script> </svg>

把上述包含XSS Payload的SVG上传后,当用户浏览访问时,便可触发XSS执行:

 

Mail.ru用户隐私信息泄漏的XSS漏洞分析

 

构造利用

有了XSS,接下来就是来构造漏洞利用了,要能显示漏洞危害才能证明漏洞价值。因此,我深入Mail.ru手机APP中想查找到一些与用户相关的敏感文件。

从其APP的文件架构中,一开始我想看看能否获取到/etc/passwd,但在iPhone中/etc/passwd有沙盒保护,我只好从其它文件入手。刚好,我有一台越狱的iPhone 5,所以我可以用它来查看到APP的整体文件架构。经测试发现,APP相关数据以随机文件夹名称被存储在了路径/private/var/mobile/Containers/Shared/AppGroup/中:

 

Mail.ru用户隐私信息泄漏的XSS漏洞分析

这些文件中哪些是Mail.ru APP的应用数据呢?这里我需要用XSS来验证一下具体的APP文件路径。所以,我在SVG构造文件中用了alert(location.href),发送给我自己,触发实现XSS,就看到了APP文件路径了:

 

 

Mail.ru用户隐私信息泄漏的XSS漏洞分析

然后来到该路径下,可以看到有几个SQLite数据库文件:

Mail.ru用户隐私信息泄漏的XSS漏洞分析

经过下载分析,我发现在文件mail_cache.sq3中包含了用户相关邮件交流、通讯录、支付记录等一切相关信息:

 

 

Mail.ru用户隐私信息泄漏的XSS漏洞分析

Mail.ru用户隐私信息泄漏的XSS漏洞分析

Mail.ru用户隐私信息泄漏的XSS漏洞分析

 

我把该SQLite数据库文件提取到了我的服务器中,有了这个SQLite数据库文件,就足够证明漏洞危害了。接着,我构造了一个简单的POC尝试从我的iPhone中以XSS方式弹出SQLite数据库文件,哦,完全可以:

 

Mail.ru用户隐私信息泄漏的XSS漏洞分析

 

制作POC

接下来,就是制作POC的时候了。我尝试用XSS漏洞把上述APP中SQLite敏感信息发送到我控制的服务器中来,刚开始,只能发送部分信息,之后经过4个多小时的试错修改,终于可以用以下SVG Payload把整个mail_cache.sq3发送到我的服务器中了。

 

Mail.ru用户隐私信息泄漏的XSS漏洞分析

POC脚本首先去读取Mail.ru的文件夹位置,然后获得mail_cache.sq3位置,接着把mail_cache.sq3文件发送到我的服务器中。也就是说,如果我把该SVG文件发送给使用Mail.ru的用户,只要他点击访问到该SVG文件,那么他Mail.ru应用相关包含邮件交流、通讯录、支付记录等个人隐私的mail_cache.sq3文件就传到了我的服务器中了。如下:

 

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!