imagine que le noyau ou la libc contiennent des bugs, avec des buffer overflow ... ben tu l'as dans l'os ... en tout etat de cause, meme ce programme bidon peut contenir un bug, et moi je n'y mettrait pas ma main au feu.
corneille.quinton 27 :cat > foo.c
void main(void){}
corneille.quinton 28 :gcc -o foo foo.c
foo.c: In function `main':
foo.c:1: warning: return type of `main' is not `int'
corneille.quinton 29 :ldd foo
libc.so.6 => /lib/libc.so.6 (0x40024000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
corneille.quinton 31 :trace ./foo
execve("./foo", ["./foo"], [/* 36 vars */]) = 0
uname({sys="Linux", node="corneille", ...}) = 0
brk(0) = 0x80495a0
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/local/user/usr/lib/i686/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/local/user/usr/lib/i686/mmx", 0xbfffec34) = -1 ENOENT (No such file or directory)
open("/local/user/usr/lib/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/local/user/usr/lib/i686", 0xbfffec34) = -1 ENOENT (No such file or directory)
open("/local/user/usr/lib/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/local/user/usr/lib/mmx", 0xbfffec34) = -1 ENOENT (No such file or directory)
open("/local/user/usr/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/local/user/usr/lib", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=51111, ...}) = 0
old_mmap(NULL, 51111, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "177円ELF1円1円1円0円0円0円0円0円0円0円0円0円3円0円3円0円1円0円0円0円0円302円1円"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=1216268, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40023000
old_mmap(NULL, 1231496, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40024000
mprotect(0x40148000, 35464, PROT_NONE) = 0
old_mmap(0x40148000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x123000) = 0x40148000
old_mmap(0x4014d000, 14984, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4014d000
close(3) = 0
munmap(0x40016000, 51111) = 0
getpid() = 19928
_exit(1) = ?
[^] # Re: Faille de sécurité
Posté par Marc Quinton . En réponse à la dépêche HotMail en partie sous FreeBSD encore. Évalué à 10.
imagine que le noyau ou la libc contiennent des bugs, avec des buffer overflow ... ben tu l'as dans l'os ... en tout etat de cause, meme ce programme bidon peut contenir un bug, et moi je n'y mettrait pas ma main au feu.
corneille.quinton 27 :cat > foo.c
void main(void){}
corneille.quinton 28 :gcc -o foo foo.c
foo.c: In function `main':
foo.c:1: warning: return type of `main' is not `int'
corneille.quinton 29 :ldd foo
libc.so.6 => /lib/libc.so.6 (0x40024000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
corneille.quinton 31 :trace ./foo
execve("./foo", ["./foo"], [/* 36 vars */]) = 0
uname({sys="Linux", node="corneille", ...}) = 0
brk(0) = 0x80495a0
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/local/user/usr/lib/i686/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/local/user/usr/lib/i686/mmx", 0xbfffec34) = -1 ENOENT (No such file or directory)
open("/local/user/usr/lib/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/local/user/usr/lib/i686", 0xbfffec34) = -1 ENOENT (No such file or directory)
open("/local/user/usr/lib/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/local/user/usr/lib/mmx", 0xbfffec34) = -1 ENOENT (No such file or directory)
open("/local/user/usr/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/local/user/usr/lib", {st_mode=S_IFDIR|0755, st_size=8192, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=51111, ...}) = 0
old_mmap(NULL, 51111, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "177円ELF1円1円1円0円0円0円0円0円0円0円0円0円3円0円3円0円1円0円0円0円0円302円1円"..., 1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=1216268, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40023000
old_mmap(NULL, 1231496, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40024000
mprotect(0x40148000, 35464, PROT_NONE) = 0
old_mmap(0x40148000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x123000) = 0x40148000
old_mmap(0x4014d000, 14984, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4014d000
close(3) = 0
munmap(0x40016000, 51111) = 0
getpid() = 19928
_exit(1) = ?