Toribash 多个拒绝服务及远程代码执行不安全漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2007-08-23
Toribash 多个拒绝服务及远程代码执行不安全漏洞

受影响系统:
Toribash Toribash <= 2.71

描述:
Toribash是一款流行的格斗游戏。

Toribash中存在多个远程漏洞,远程安全者可能利用这些漏洞控制服务器。

---------------------------------
A] 专用服务器格式串漏洞
---------------------------------

如果客户端在加入游戏的时候直接向vfprintf()发送了包含有BOUT ID; 1 0 0 0 0 0 NICKNAME 0的格式串,就可能导致服务器崩溃或执行任意指令。

----------------------------------
B] 客户端命令缓冲区溢出
----------------------------------

如果用户受骗连接到了恶意的服务器或播放了恶意的回放(*.rpl)文件的话,游戏客户端在读取超过256字节的超长游戏命令时就会触发缓冲区溢出。

----------------------------------------------------
C] SAY命令缓冲区溢出
----------------------------------------------------

游戏客户端在处理没有换行符的SAY命令时存在缓冲区溢出,如果用户受骗连接到了恶意的服务器就可能导致客户端崩溃或执行任意指令。

--------------------------------------------
D] 未初始化值导致服务器崩溃
--------------------------------------------

用户在加入服务器时,会为其分配ID -1,在调用ENTER命令之前不会再分配任何数据。安全者可以将ID设置为-1加入到服务器并发送GRIP命令强制服务器处理请求,但包含客户端接收到值的结构为空,因此会失败:

  sscanf("0 0/n", "%i %i", &client.integer1, &client.integer2);

这里“0 0/n”是客户端所发送GRIP命令的第二部分(GRIP -1;0 0/n"),client.integer1指向0x000030d0,client.integer2指向0x000030d4,因为用户包含上述内容的结构为空指针。

---------------------
E] 丢弃换行符
---------------------

Toribash所使用的协议是由被换行符所分隔的命令组成的。如果安全者发送的会话消息或其他命令强制服务器只向客户端发送部分入站数据的话,就可能阻断正在服务器中玩游戏的客户端,在接收到换行符之前客户端会一直僵死。

-------------------------------------
F] Windows专用服务器bell字符漏洞
-------------------------------------

专用服务器会在控制台中显示大量信息,且客户端可以使用一些命令强制服务器所显示的字符数量,因此安全者可以使用bell 0x07之类的无效字符导致服务器僵死。

-------------------------------------
G] 畸形报文断开客户端
-------------------------------------

如果安全者加入游戏(ENTER命令)并向服务器发送了超长的SPEC命令,客户端就会收到malformed packet消息并断开。


厂商补丁:
Toribash
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.toribash.com/