挖洞经验 | 从存储型XSS到RCE的Steam客户端漏洞

栏目: 编程工具 · 发布时间: 5年前

内容简介:Steam是Valve公司旗下综合的数字游戏社交平台,玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。为了方便社区玩家的交流沟通,Steam除了具备电脑手机客户端的聊天功能外,还构建有一个与客户端功能相同的网页版聊天系统(Steam聊天客户端基于React开发而成,React算是Javascript应用框架中具备多种强大安全性的良好架构了,它能一定程度上规避某些不安全函数的应用。另外,Steam聊天客户端还部署了内容安全策略(CSP),且在其中应用了’unsafe-inline’策略,而本来’uns

挖洞经验 | 从存储型XSS到RCE的Steam客户端漏洞 随着视频游戏行业的持续膨胀,Valve的Steam平台仍然是游戏玩家们的热门市场之一,在某种程度上,这也成为了黑客们攻击目标。最近众测社区披露的一个Steam客户端漏洞,就能让攻击者在Steam用户的电脑系统上实现从存储型XSS到远程代码执行(RCE)的攻击,可导致个人信息和进一步的系统控制。最终,该漏洞获得了Valve官方$7500美金的奖励。

Steam聊天客户端介绍

Steam是Valve公司旗下综合的数字游戏社交平台,玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。为了方便社区玩家的交流沟通,Steam除了具备电脑手机客户端的聊天功能外,还构建有一个与客户端功能相同的网页版聊天系统( https://steamcommunity.com/chat ),该网页聊天系统具有的多媒体元素和功能与客户端一致。

Steam聊天客户端基于React开发而成,React算是Javascript应用框架中具备多种强大安全性的良好架构了,它能一定程度上规避某些不安全函数的应用。另外,Steam聊天客户端还部署了内容安全策略(CSP),且在其中应用了’unsafe-inline’策略,而本来’unsafe-inline’就会带来XSS风险,这就有点意思了。

CSP的’ unsafe-inline ‘策略:允许使用内联资源,如内联的 <script> 元素、javascript: URL、内联的事件处理函数和内联的 <style> 元素。(注意: 使用 ‘unsafe-inline’ 和 ‘unsafe-eval’ 都是不安全的,它们会使您的网站有跨站脚本攻击风险。)

漏洞发现

该漏洞由年轻的英国国家网络安全中心(National Cyber Security Centre)安全工程师Thomas Shadwell发现,他曾获得福布斯2018年评选的“欧洲30名30岁以下优秀工程师”称号。

Shadwell的 漏洞报告 显示,他利用了Chrome DevTool工具、XSS Palyload和允许第三方站点URL嵌入的oEmbed格式发现了该漏洞。由于客户端和网页版聊天系统的元素和功能模式相同,为了更好的调试请求,Shadwell选择了网页版聊天系统 https://steamcommunity.com/chat 作为突破口,客户端和网页版存在的最终测试漏洞相同。

Steam聊天客户端可以发送和接收BBcode格式的聊天消息,而这些消息会间接地映射为相应的HTML元素,特别是对任意URL都可使用类似[url]的BBcode标签,Shadwell发现[url=xxx]、[code] 和 [image]标签存在可利用风险,尤其是 [url=xxx] 未被安全过滤,可以嵌入任意链接,尽管React具备严格的XSS缓解防护措施,但并不能缓解[url=xxx]下类似 javascript: URI 的XSS攻击。

对该漏洞的利用场景为,攻击者只需向聊天群组玩家成员,发送一条经过构造的链接,当玩家点击了这条链接之后,就能触发漏洞实现攻击。如下PoC视频所示:

看不到?点 这里

严重的危害就是,攻击者可以在Steam聊天客户端的一些公共群组中广泛传播经过构造的恶意嵌入链接,如jarfile:..\..\..\..\..\..\..\..\Users\Username\Downloads\drive-by-download.jar,或是一些精巧页面,愿者点击上钩之后,就能利用该漏洞窃取受害者玩家的个人敏感信息,进行进一步的网络钓鱼攻击、勒索软件传播和系统破坏。

从XSS到RCE

在Shadwell对该漏洞的首次上报中,只发现了以上的XSS漏洞,但在他综合 前期对Steam客户端的漏洞发现 时,却发现可以利用

steam://openexternalforpid/10400/file:///C:/Windows/cmd.exe

构造RCE执行指令,实现对受害者系统的远程代码执行攻击。只用发送链接

[url=steam://openexternalforpid/10400/file:///C:/Windows/cmd.exe]click me[/url]

给目标受害者,只要对方点击,攻击就能成功。

该漏洞的根本原因出在Steam聊天客户端所谓的“丰富聊天内容”功能中,这也是现在很多流行的聊天应用程序中经常会内置的功能,而该漏洞也就是Steam应用了不安全的CSP 'unsafe-inline'策略所导致的。

据Shadwell透露,总体来说,Steam聊天客户端的安全设计还算不错,但问题出在对一些早前的架构采用了相同的安全设计,所以才导致了该漏洞。Shadwell还表示,Steam平台的游戏项目存在很多实际价值,所以在Steam上存在很多窃取他人游戏账户和资产的网络犯罪行为。更多漏洞细节请参考漏洞报告: Hackerone

*参考来源: forbes \ hackerone ,clouds编译,转载请注明来自FreeBuf.COM


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript & jQuery交互式Web前端开发

JavaScript & jQuery交互式Web前端开发

[美]达克特(Duckett,J.) / 杜伟、柴晓伟、涂曙光 / 清华大学出版社 / 2015-6-9 / 79.80元

欢迎选择一种更高效的学习JavaScript和jQuery的方式。 你是一名JavaScript新手?或是您曾经向自己的Web页面上添加过一些脚本,但想以一种更好的方式来实现它们?本书非常适合您。本书不仅向您展示如何阅读和编写JavaScript代码,同时还会以一种简单且视觉化的方式,教您有关计算机编程的基础知识。阅读本书之前,您只需要对HTML和CSS有一些了解即可。 通过将编程理论......一起来看看 《JavaScript & jQuery交互式Web前端开发》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具