|
|||||||||||
|
Re: exploiting a binary if %edi can be overwritten?
From: <avel(at)gmx.ch>
Date: Tue Jun 24 2003 - 10:44:28 EDT Ok, here's the gdb mybinary mybinary.core: >gdb mybinary mybinary.core
0x2813ecfa(gdb) >What happens if you overwrite 10000 bytes instead?
The same, no changes in regs or asm output. > What does {k,s,l}trace show?
>ktrace mybinary `perl -e 'print "A" x 10000'` (too much to post, please
. . .
167 mybinary RET write 37/0x25
strace is also much to post, but should be fine:
execve("./mybinary", ["./mybinary", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"...],
[/* 23 vars */]) = 0
mmap(0, 1976, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x28066000 munmap(0x28066000, 1976) = 0__sysctl([hw.pagesize], 2, "\0\20\0\0", [4], NULL, 0) = 0 mmap(0, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x28066000 geteuid(0xbfbfd4b4) = 0 getuid() = 0 (euid 0) getegid(0xbfbfd4b4) = 0 getgid() = 0 (egid 0)open("/var/run/ld-elf.so.hints", O_RDONLY) = 3 read(3, "Ehnt\1\0\0\0\200\0\0\0007\0\0\0\0\0\0\0006\0\0\0\0\0\0"..., 128) = 128 lseek(3, 128, SEEK_SET) = 128 read(3, "/usr/lib:/usr/lib/compat:/usr/X1"..., 55) = 55 close(3) = 0access("/usr/lib/libvga.so.1", F_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/compat/libvga.so.1", F_OK) = -1 ENOENT (No such file or directory) access("/usr/X11R6/lib/libvga.so.1", F_OK) = -1 ENOENT (No such file or directory) access("/usr/local/lib/libvga.so.1", F_OK) = 0 open("/usr/local/lib/libvga.so.1", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=315348, ...}) = 0 read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\324|\0"..., 4096) = 4096 mmap(0, 331776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x2806e000 mprotect(0x280b4000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x280b4000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x280b5000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x46000) = 0x280b5000 mmap(0x280bb000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0x280bb000 close(3) = 0access("/usr/lib/libvgagl.so.1", F_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/compat/libvgagl.so.1", F_OK) = -1 ENOENT (No such file or directory) access("/usr/X11R6/lib/libvgagl.so.1", F_OK) = -1 ENOENT (No such file or directory) access("/usr/local/lib/libvgagl.so.1", F_OK) = 0 open("/usr/local/lib/libvgagl.so.1", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=52620, ...}) = 0 read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0H+\0\000"..., 4096) = 4096 mmap(0, 57344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x280bf000 mprotect(0x280ca000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x280ca000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x280cb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xb000) = 0x280cb000
close(3) = 0
access("/usr/lib/libc.so.4", F_OK) = 0
open("/usr/lib/libc.so.4", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=567860, ...}) = 0
read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\224\'\1"..., 4096)
= 4096
mmap(0, 618496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x280cd000 mprotect(0x2814c000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x2814c000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x2814d000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7f000) = 0x2814d000 mmap(0x28151000, 77824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0x28151000
close(3) = 0
access("/usr/lib/libm.so.2", F_OK) = 0
open("/usr/lib/libm.so.2", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=102192, ...}) = 0
read(3, "\177ELF\1\1\1\t\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0L0\0\000"..., 4096)
= 4096
mmap(0, 98304, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x28164000 mprotect(0x28179000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x28179000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x2817a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x15000) = 0x2817a000
close(3) = 0
mmap(0, 560, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2817c000
munmap(0x2817c000, 560) = 0
mmap(0, 3848, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2817c000
munmap(0x2817c000, 3848) = 0
mmap(0, 1648, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2817c000
munmap(0x2817c000, 1648) = 0
mmap(0, 13312, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2817c000
munmap(0x2817c000, 13312) = 0
mmap(0, 2208, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2817c000
munmap(0x2817c000, 2208) = 0
sigaction(SIGILL, {0x280566d0, [], 0}, {SIG_DFL}) = 0
sigprocmask(SIG_BLOCK, NULL, []) = 0
sigaction(SIGILL, {SIG_DFL}, NULL) = 0
sigprocmask(SIG_BLOCK, ~[ILL TRAP ABRT EMT FPE BUS SEGV SYS], []) = 0
sigprocmask(SIG_SETMASK, [], NULL) = 0
stat("/proc/bus/pci", 0xbfbfd320) = -1 ENOENT (No such file or
directory)
open("/usr/local/etc/vga/libvga.config", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=15925, ...}) = 0 fstat(3, {st_mode=S_IFREG|0644, st_size=15925, ...}) = 0 readlink("/etc/malloc.conf", 0xbfbf92b0, 63) = -1 ENOENT (No such file or directory) mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x2817c000
break(0x809f000) = 0
break(0x80a3000) = 0
read(3, "# Configuration file for svgalib"..., 16384) = 15925
close(3) = 0
open("/root/.svgalibrc", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/dev/io", O_RDONLY) = 3
fcntl(0, F_GETFD) = 0
fcntl(1, F_GETFD) = 0
fcntl(2, F_GETFD) = 0
open("/dev/mem", O_RDWR) = 4
fcntl(0, F_GETFD) = 0
fcntl(1, F_GETFD) = 0
fcntl(2, F_GETFD) = 0
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(5, 0), ...}) = 0
ioctl(0, VT_GETMODE, 0xbfbfd288) = -1 ENOTTY (Inappropriate ioctl for
device)
fstat(1, {st_mode=S_IFREG|0644, st_size=5769, ...}) = 0 ioctl(1, VT_GETMODE, 0xbfbfd288) = -1 ENOTTY (Inappropriate ioctl for device) fstat(2, {st_mode=S_IFREG|0644, st_size=5910, ...}) = 0 ioctl(2, VT_GETMODE, 0xbfbfd288) = -1 ENOTTY (Inappropriate ioctl for device)
open("/dev/console", O_RDWR) = 5
ioctl(5, VT_OPENQRY, 0x280b6a08) = 0
close(5) = 0
getppid(0x8) = 4846
setpgid(0, 4846) = 0
setsid() = 4848
open("/dev/ttyv8", O_RDWR) = 5
ioctl(5, VT_GETACTIVE, 0xbfbfd284) = 0
getuid() = 0 (euid 0)
fstat(1, {st_mode=S_IFREG|0644, st_size=6462, ...}) = 0
write(1, "[svgalib: allocated virtual cons"..., 40[svgalib: allocated
virtual console #9]
) = 40
close(0) = 0
close(1) = 0
close(2) = 0
dup(5) = 0
dup(5) = 1
dup(5) = 2
write(2, "\33[H\33[J", 6) = 6
open("/dev/mem", O_RDONLY) = 6
__sysctl([hw.pagesize], 2, "\0\20\0\0", [4], NULL, 0) = 0
break(0x80a5000) = 0
mmap(0x80a3000, 4096, PROT_READ, MAP_SHARED|MAP_FIXED, 6, 0xc0000) =
0x80a3000
close(6) = 0 break(0x80a7000) = 0mmap(0x80a5000, 4096, PROT_READ, MAP_SHARED|MAP_FIXED, 4, 0xc0000) = 0x80a5000 munmap(0x80a5000, 4096) = 0mmap(0, 65536, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0xa0000) = 0x2817d000 mmap(0, 32768, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0xb8000) = 0x2818d000 close(4) = 0open("/usr/local/etc/vga/libvga.config", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=15925, ...}) = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=15925, ...}) = 0
break(0x80ab000) = 0
read(4, "# Configuration file for svgalib"..., 16384) = 15925
close(4) = 0
open("/root/.svgalibrc", O_RDONLY) = -1 ENOENT (No such file or
directory)
fcntl(0, F_GETFD) = 0
fcntl(1, F_GETFD) = 0
fcntl(2, F_GETFD) = 0
open("/dev/mouse", O_RDWR|O_NONBLOCK) = -1 ENOENT (No such file or
directory)
setuid(0) = 0 getgid() = 0 (egid 0) setgid(0) = 0 getuid() = 0 (euid 0) seteuid(0) = 0 getgid() = 0 (egid 0) setegid(0) = 0--- SIGSEGV (Segmentation fault) --- --- SIGSEGV (Segmentation fault) --- and finally ltrace:
atexit(0x28054e2c) = 0 atexit(0x0804f694) = 0vga_init(2, 0xbfbfd4c0, 0xbfbfd4cc, 0x28068300, 0xbfbfd36c[svgalib: allocated virtual console #9] ) = 0 sscanf(0xbfbfd5af, 0x0804f928, 0x0809d540, 0x0809d644, 0) = 1 fprintf(0x2814fe90, "\nusage: %s [<options>] <host>:<"..., "EOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOF". .. <unfinished ...> --- SIGSEGV (Segmentation fault) --- +++ killed by SIGSEGV +++ still thanks a lot to anyone helping me with that topic!
regards
-- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ Bitte lächeln! Fotogalerie online mit GMX ohne eigene Homepage!Received on Tue Jun 24 19:36:37 2003 This archive was generated by hypermail 2.1.8 : Wed Aug 23 2006 - 14:07:40 EDT |
||||||||||
|
|||||||||||