看我如何黑掉堡垒之夜玩家账户
一、前言
Fortnite(堡垒之夜)是Epic Games游戏开发商制作的一款大型流行游戏,在虚拟世界中,Fortnite玩家的任务就是通过各种工具和武器保证自己安全,力争成为最后一个存活的单位。
在过去几周时间内,Check Point Research发现了Epic Game在线平台上的多个漏洞,攻击者可以借助这些漏洞控制任何玩家的账户,浏览玩家个人账户信息、购买V-Bucks和Fortnite游戏内虚拟货币、窃听并记录玩家在游戏内的聊天信息及隐私对话。
Fortnite由美国视频游戏开发商Epic Games制作,该开发商估值约为50亿至80亿美元,而这款游戏将近占了其中半壁江山。这款游戏在经济方面炙手可热,因此也吸引了网络犯罪分子的注意力。
之前攻击者会诱骗玩家登录伪造的网站,这些网站号称可以生成Fortnite游戏中的“V-Bucks”货币(这些商品通常只能通过官方的Fortnite商店购买,或者在游戏中赚取)。这些钓鱼网站会诱导玩家输入游戏登录凭据、姓名、地址和信用卡等个人信息,也会通过社交媒体进行传播,宣传玩家可以“轻松赚钱”以及“快速发家”。
然而,我们的研究团队采用了更为复杂也更为“阴险”的方法,不需要用户提供任何登录凭据。我们发现了Epic Games某些子域名的漏洞,在这些漏洞的帮助下,用户只需点击攻击者发送的链接就可以发起XSS攻击。用户点击链接后,无需输入任何登录凭据,攻击者就可以立刻获取玩家的用户名及密码。
Check Point Research向Epic Games通报了该漏洞,厂商也部署了修复补丁,保证数百万玩家能在安全环境中继续游戏。
大家可以访问此处观看攻击演示视频。
二、技术细节
Epic Games存在一些老的域名,比如“http://ut2004stats.epicgames.com”,我们的发现都源自于此。
SQL注入
在“http://ut2004stats.epicgames.com”子域名上,我们发现了一个有趣的GET请求,其中涉及到一个路径:/serverstats.php?server=[some server code]。
看到这里我们提出了一个问题:如果“在请求中添加其他标志”,会出现什么情况?
结果服务器返回了“Server database error”(服务器数据库错误)信息!
这一点非常好,我们发现这很有可能存在SQL注入漏洞(此时我们认为这是一个MYSQL数据库)。
进一步研究后,我们发现目标中部署了一款WAF产品,使用的是黑名单机制(并没有使用白名单机制),我们首先得解决这个问题。在这个系统限制下,我们无法查询某些系统表(如information_schema表)。
然而我们可以使用系统变量(@@),似乎有些人忘记处理这些因素,并且我们可以借此完成许多任务。
Google一番后,我们发现37514065是一个有效的服务端代码。基于这一点,我们执行了如下查询语句,观察服务端返回的响应数据:
if((SUBSTR(query,from,length)=CHAR([char_number])),true,false)
如果响应数据大小为4014字节,则代表查询结果中不存在该字符。如果响应数据大小为12609字节,则代表查询结果中存在该字符。
比如,if((SUBSTR(@@version,1,1)=CHAR(52)),37514065,0)会返回4014字节:
请求数据如下:
图1. 初始SQL注入查询语句
响应数据如下:
图2. 上图SQL查询返回4014字节数据
更进一步,if((SUBSTR(@@version,1,1)=CHAR(53)),37514065,0)查询语句返回12609字节,因此我们得知目标使用的是MySQL 5。
图3. 第二次SQL注入查询
图4. SQL查询语句返回12609字节响应数据
通过这种方法,我们可以获取一些数据,进行下一步研究。
跨站脚本(XSS)
继续研究后,我们发现“http://ut2004stats.epicgames.com”子域名中包含名为“maps”的一个网页。我们猜测该网页可以通过地图名称/id来展示比赛相关统计数据。
当我们在查找XSS漏洞时(不管是反射型还是存储型漏洞),我们都应该在目标页面中找到服务器对输入数据的输出,我们的确在该页面的搜索组件中找到了所需的输出点。事实上,该页面的另一个功能是搜索栏,也是我们用于XSS漏洞的注入点。
比如:
一、前言
Fortnite(堡垒之夜)是Epic Games游戏开发商制作的一款大型流行游戏,在虚拟世界中,Fortnite玩家的任务就是通过各种工具和武器保证自己安全,力争成为最后一个存活的单位。
在过去几周时间内,Check Point Research发现了Epic Game在线平台上的多个漏洞,攻击者可以借助这些漏洞控制任何玩家的账户,浏览玩家个人账户信息、购买V-Bucks和Fortnite游戏内虚拟货币、窃听并记录玩家在游戏内的聊天信息及隐私对话。
Fortnite由美国视频游戏开发商Epic Games制作,该开发商估值约为50亿至80亿美元,而这款游戏将近占了其中半壁江山。这款游戏在经济方面炙手可热,因此也吸引了网络犯罪分子的注意力。
之前攻击者会诱骗玩家登录伪造的网站,这些网站号称可以生成Fortnite游戏中的“V-Bucks”货币(这些商品通常只能通过官方的Fortnite商店购买,或者在游戏中赚取)。这些钓鱼网站会诱导玩家输入游戏登录凭据、姓名、地址和信用卡等个人信息,也会通过社交媒体进行传播,宣传玩家可以“轻松赚钱”以及“快速发家”。
然而,我们的研究团队采用了更为复杂也更为“阴险”的方法,不需要用户提供任何登录凭据。我们发现了Epic Games某些子域名的漏洞,在这些漏洞的帮助下,用户只需点击攻击者发送的链接就可以发起XSS攻击。用户点击链接后,无需输入任何登录凭据,攻击者就可以立刻获取玩家的用户名及密码。 copyright 无奈人生
Check Point Research向Epic Games通报了该漏洞,厂商也部署了修复补丁,保证数百万玩家能在安全环境中继续游戏。
大家可以访问此处观看攻击演示视频。
二、技术细节
Epic Games存在一些老的域名,比如“http://ut2004stats.epicgames.com”,我们的发现都源自于此。
SQL注入
在“http://ut2004stats.epicgames.com”子域名上,我们发现了一个有趣的GET请求,其中涉及到一个路径:/serverstats.php?server=[some server code]。
看到这里我们提出了一个问题:如果“在请求中添加其他标志”,会出现什么情况?
结果服务器返回了“Server database error”(服务器数据库错误)信息!
这一点非常好,我们发现这很有可能存在SQL注入漏洞(此时我们认为这是一个MYSQL数据库)。
进一步研究后,我们发现目标中部署了一款WAF产品,使用的是黑名单机制(并没有使用白名单机制),我们首先得解决这个问题。在这个系统限制下,我们无法查询某些系统表(如information_schema表)。
然而我们可以使用系统变量(@@),似乎有些人忘记处理这些因素,并且我们可以借此完成许多任务。
Google一番后,我们发现37514065是一个有效的服务端代码。基于这一点,我们执行了如下查询语句,观察服务端返回的响应数据:
if((SUBSTR(query,from,length)=CHAR([char_number])),true,false)
如果响应数据大小为4014字节,则代表查询结果中不存在该字符。如果响应数据大小为12609字节,则代表查询结果中存在该字符。
比如,if((SUBSTR(@@version,1,1)=CHAR(52)),37514065,0)会返回4014字节:
请求数据如下:
图1. 初始SQL注入查询语句
响应数据如下:
图2. 上图SQL查询返回4014字节数据
更进一步,if((SUBSTR(@@version,1,1)=CHAR(53)),37514065,0)查询语句返回12609字节,因此我们得知目标使用的是MySQL 5。
图3. 第二次SQL注入查询
图4. SQL查询语句返回12609字节响应数据
通过这种方法,我们可以获取一些数据,进行下一步研究。
跨站脚本(XSS)
继续研究后,我们发现“http://ut2004stats.epicgames.com”子域名中包含名为“maps”的一个网页。我们猜测该网页可以通过地图名称/id来展示比赛相关统计数据。
当我们在查找XSS漏洞时(不管是反射型还是存储型漏洞),我们都应该在目标页面中找到服务器对输入数据的输出,我们的确在该页面的搜索组件中找到了所需的输出点。事实上,该页面的另一个功能是搜索栏,也是我们用于XSS漏洞的注入点。
无奈人生安全网
比如:
本文来自无奈人生安全网