Unreal Tournament是由Epic Games开发的第一人称扮演游戏。 Unreal Tournament及其他一些基于Unreal引擎的游戏内置有一个被称为uWeb的内部Web服务器用于使用Web浏览器远程控制服务器。WebAdmin组件由两个子类组成,分别为UTServerAdmin和UTImageServer。1.3版本的ImageServer组件脚本中执行了以下更改,删除了仅可下载JPG、JPEG、GIF、BMP和PNG扩展名文件的限制: 1.2版本的ImageServer.uc: ... else { Response.HTTPError(404); return; } Response.IncludeBinaryFile( Path $ Image ); 1.3版本的ImageServer.uc: ... else { Response.SendStandardHeaders("application/octet-stream", true); } Response.IncludeBinaryFile( Path $ Image ); 这就导致了目录遍历漏洞,允许任意未经认证的外部攻击者从系统下载文件。事实上在请求文件时引擎首先会查看启动游戏服务器用户的主文件夹(如C:\Documents and Settings\Administrator\My Documents\My Games\Unreal Tournament 3),因为服务器所使用的配置文件位于该文件夹中,因此将服务器安装在其他分区并不能限制这个问题。
Unreal Tournament是由Epic Games开发的第一人称扮演游戏。 Unreal Tournament及其他一些基于Unreal引擎的游戏内置有一个被称为uWeb的内部Web服务器用于使用Web浏览器远程控制服务器。WebAdmin组件由两个子类组成,分别为UTServerAdmin和UTImageServer。1.3版本的ImageServer组件脚本中执行了以下更改,删除了仅可下载JPG、JPEG、GIF、BMP和PNG扩展名文件的限制: 1.2版本的ImageServer.uc: ... else { Response.HTTPError(404); return; } Response.IncludeBinaryFile( Path $ Image ); 1.3版本的ImageServer.uc: ... else { Response.SendStandardHeaders("application/octet-stream", true); } Response.IncludeBinaryFile( Path $ Image ); 这就导致了目录遍历漏洞,允许任意未经认证的外部攻击者从系统下载文件。事实上在请求文件时引擎首先会查看启动游戏服务器用户的主文件夹(如C:\Documents and Settings\Administrator\My Documents\My Games\Unreal Tournament 3),因为服务器所使用的配置文件位于该文件夹中,因此将服务器安装在其他分区并不能限制这个问题。