挖洞经验 | Mail.ru用户隐私信息泄漏的XSS漏洞分析
字数 1408 2025-08-15 21:31:27

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

漏洞概述

本教学文档详细分析Mail.ru应用中发现的存储型XSS漏洞,该漏洞允许攻击者通过SVG文件注入恶意脚本,窃取用户邮件交流记录、通讯录等隐私信息。

漏洞背景

  • 受影响系统:Mail.ru应用及myMail iOS客户端
  • 漏洞类型:存储型XSS(或跨应用程序脚本CAS)
  • 危害等级:高危
  • 漏洞奖励:$1000
  • 发现时间:2020年7月

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

漏洞原理

漏洞根源

Mail.ru的某个功能点对SVG图片文件未做充分安全检查,导致可以注入恶意JavaScript代码。

SVG文件结构分析

SVG(可缩放矢量图形)是一种基于XML的图像格式,支持嵌入JavaScript脚本。漏洞利用的关键在于SVG文件可以包含<script>标签。

漏洞利用示例

<?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 id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
  <script type="text/javascript">
    alert("XSS");
  </script>
</svg>

当用户浏览包含此SVG的页面时,嵌入的JavaScript代码会被执行。

漏洞利用过程

1. 信息收集

  • 使用越狱的iPhone 5设备分析Mail.ru应用的文件结构
  • 发现应用数据存储在路径:/private/var/mobile/Containers/Shared/AppGroup/
  • 通过XSS弹窗(alert(location.href))确认具体应用路径

2. 敏感数据定位

在应用目录下发现多个SQLite数据库文件,其中mail_cache.sq3包含:

  • 用户邮件交流记录
  • 通讯录信息
  • 支付记录等敏感数据

3. 数据提取技术

通过XSS构造脚本读取并外传SQLite数据库文件:

  1. 首先定位Mail.ru的文件夹位置
  2. 获取mail_cache.sq3文件路径
  3. 将文件内容发送到攻击者控制的服务器

4. PoC开发

经过多次调试(约4小时),开发出完整的利用脚本,能够完整提取mail_cache.sq3文件。

漏洞分类争议

Mail.ru安全团队认为此漏洞属于"跨应用程序脚本(Cross Application Scripting, CAS)"而非传统XSS。

CAS特点

  • 影响无法详尽检查输入的应用程序
  • 允许攻击者插入修改特定应用程序行为的数据
  • 可以从用户系统内部提取数据
  • 可获得应用程序的全部特权

防御措施

针对开发人员

  1. 输入验证

    • 对上传的SVG文件进行严格的内容检查
    • 过滤或转义<script>标签和JavaScript代码
  2. 内容安全策略(CSP)

    • 实施严格的CSP策略,限制脚本执行来源
    • 禁用内联脚本
  3. 沙盒限制

    • 限制应用文件系统的访问权限
    • 敏感数据加密存储
  4. 文件上传处理

    • 对上传的SVG文件进行解析和重写
    • 移除所有潜在的危险元素和属性

针对用户

  1. 保持应用和操作系统更新
  2. 谨慎打开未知来源的SVG文件
  3. 避免使用越狱设备处理敏感信息

漏洞报告流程

  1. 发现漏洞后立即报告给Mail.ru官方
  2. 提供详细的漏洞描述和复现步骤
  3. 提交完整的PoC证明漏洞危害
  4. 等待厂商确认和修复
  5. 获得漏洞奖励($1000)

总结

本案例展示了SVG文件处理不当可能导致严重的安全问题,即使是看似无害的图像文件也可能成为攻击载体。开发人员需要对所有用户上传内容保持警惕,实施多层防御措施。同时,此案例也展示了从漏洞发现到利用再到报告的全过程,为安全研究人员提供了有价值的参考。

Mail.ru用户隐私信息泄漏的XSS漏洞分析教学文档 漏洞概述 本教学文档详细分析Mail.ru应用中发现的存储型XSS漏洞,该漏洞允许攻击者通过SVG文件注入恶意脚本,窃取用户邮件交流记录、通讯录等隐私信息。 漏洞背景 受影响系统 :Mail.ru应用及myMail iOS客户端 漏洞类型 :存储型XSS(或跨应用程序脚本CAS) 危害等级 :高危 漏洞奖励 :$1000 发现时间 :2020年7月 Mail.ru是俄罗斯最大的电邮和网络服务平台,也是俄罗斯第一个成功在伦敦上市的互联网公司。 漏洞原理 漏洞根源 Mail.ru的某个功能点对SVG图片文件未做充分安全检查,导致可以注入恶意JavaScript代码。 SVG文件结构分析 SVG(可缩放矢量图形)是一种基于XML的图像格式,支持嵌入JavaScript脚本。漏洞利用的关键在于SVG文件可以包含 <script> 标签。 漏洞利用示例 当用户浏览包含此SVG的页面时,嵌入的JavaScript代码会被执行。 漏洞利用过程 1. 信息收集 使用越狱的iPhone 5设备分析Mail.ru应用的文件结构 发现应用数据存储在路径: /private/var/mobile/Containers/Shared/AppGroup/ 通过XSS弹窗( alert(location.href) )确认具体应用路径 2. 敏感数据定位 在应用目录下发现多个SQLite数据库文件,其中 mail_cache.sq3 包含: 用户邮件交流记录 通讯录信息 支付记录等敏感数据 3. 数据提取技术 通过XSS构造脚本读取并外传SQLite数据库文件: 首先定位Mail.ru的文件夹位置 获取 mail_cache.sq3 文件路径 将文件内容发送到攻击者控制的服务器 4. PoC开发 经过多次调试(约4小时),开发出完整的利用脚本,能够完整提取 mail_cache.sq3 文件。 漏洞分类争议 Mail.ru安全团队认为此漏洞属于"跨应用程序脚本(Cross Application Scripting, CAS)"而非传统XSS。 CAS特点 : 影响无法详尽检查输入的应用程序 允许攻击者插入修改特定应用程序行为的数据 可以从用户系统内部提取数据 可获得应用程序的全部特权 防御措施 针对开发人员 输入验证 : 对上传的SVG文件进行严格的内容检查 过滤或转义 <script> 标签和JavaScript代码 内容安全策略(CSP) : 实施严格的CSP策略,限制脚本执行来源 禁用内联脚本 沙盒限制 : 限制应用文件系统的访问权限 敏感数据加密存储 文件上传处理 : 对上传的SVG文件进行解析和重写 移除所有潜在的危险元素和属性 针对用户 保持应用和操作系统更新 谨慎打开未知来源的SVG文件 避免使用越狱设备处理敏感信息 漏洞报告流程 发现漏洞后立即报告给Mail.ru官方 提供详细的漏洞描述和复现步骤 提交完整的PoC证明漏洞危害 等待厂商确认和修复 获得漏洞奖励($1000) 总结 本案例展示了SVG文件处理不当可能导致严重的安全问题,即使是看似无害的图像文件也可能成为攻击载体。开发人员需要对所有用户上传内容保持警惕,实施多层防御措施。同时,此案例也展示了从漏洞发现到利用再到报告的全过程,为安全研究人员提供了有价值的参考。