buffer overflows
-
moin,
ich wollte mir mal das wesen der buffer overflows anschauen und schrieb dafür folgendes programm:
#include <stdio.h> void overflow(void); void hack_pc(void); int main() { overflow(); printf("This should go out"); hack_pc(); // this should be never execute return 0; } void overflow(void) { char buffer[12]; printf("Going for stdin: "); gets(buffer); printf("ur input: %s\n", buffer); } void hack_pc(void) { puts("\nu got hacked"); }
ich denkde der buffer overflow ist unübersehbar.
so nun rufe ich das programm auf und gebe 20 zeichen ein ( der puffer ist 12 zeichen gross! ) aber ich kriege kein segfault ( imho erst ab >23 zeichen )
alleine das finde ich schon unverständlich
noch unverständlicher wirds wenn ich den exploit dafür schreibe
erstmal disassemble ich das mit gdm
Dump of assembler code for function main:
0x80483c4 <main>: push %ebp
0x80483c5 <main+1>: mov %esp,%ebp
0x80483c7 <main+3>: sub $0x8,%esp
0x80483ca <main+6>: and $0xfffffff0,%esp
0x80483cd <main+9>: mov $0x0,%eax
0x80483d2 <main+14>: sub %eax,%esp
0x80483d4 <main+16>: call 0x80483f1 <overflow>
0x80483d9 <main+21>: movl $0x8048544,(%esp,1)
0x80483e0 <main+28>: call 0x80482ec <printf>
0x80483e5 <main+33>: call 0x8048423 <hack_pc>
0x80483ea <main+38>: mov $0x0,%eax
0x80483ef <main+43>: leave
0x80483f0 <main+44>: retder exploit soll bewirken das hack_pc niemals aufgerufen wird, sondern das prog direkt beendet; ich will also das das prog bei 0x80483f0 ( letzte zeile ) weitermacht. der exploit sieht dann so aus
#include <stdio.h> int main() { // Regulären Puffer füllen // printf("123456789abc"); // Stack pointer überschreiben printf("ABCD"); // Neue Rücksprungadresse printf("%c%c%c%c", 0xf0, 0x83, 0x04, 0x08); // raus das zeug fflush(stdout); return 0; }
der aufruf:
./exploit | ./a.out
Going for stdin: ur input: 123456789abcABCDð
This should go out
u got hacked1. wieso kommt das u got hacked, der sollte doch nach dem aufruf davon rurückkehren
2. wieso kommt kein segfault?
3. wieso funzt das ganze netdanke für jede hilfe
-
wieso ist mein posting so verkrüppelt?
-
freeka schrieb:
wieso ist mein posting so verkrüppelt?
kann das ein mod evtl richten? kann das ja net ma editieren
-
?
-
Wenn du unbedingt Buffer Overflows schreiben willst, solltest du dir nochmal
ein Tutorial durchlesen und dich intensiv mit dem Thema befassen.mfg
v R
-
virtuell Realisticer schrieb:
Wenn du unbedingt Buffer Overflows schreiben willst, solltest du dir nochmal
ein Tutorial durchlesen und dich intensiv mit dem Thema befassen.mfg
v Räh hab ich doch, oder meinste ich habe mir das da oben alles aus meinem türrahmen gehauen
-
freeka schrieb:
virtuell Realisticer schrieb:
Wenn du unbedingt Buffer Overflows schreiben willst, solltest du dir nochmal
ein Tutorial durchlesen und dich intensiv mit dem Thema befassen.mfg
v Räh hab ich doch, oder meinste ich habe mir das da oben alles aus meinem türrahmen gehauen
So wuerde ich keinen Buffer Overflow schreiben.
mfg
v R
-
virtuell Realisticer schrieb:
freeka schrieb:
virtuell Realisticer schrieb:
Wenn du unbedingt Buffer Overflows schreiben willst, solltest du dir nochmal
ein Tutorial durchlesen und dich intensiv mit dem Thema befassen.mfg
v Räh hab ich doch, oder meinste ich habe mir das da oben alles aus meinem türrahmen gehauen
So wuerde ich keinen Buffer Overflow schreiben.
mfg
v Rwieso wo ist das problem? da ist doch ein ganz einfacher buffer overflow, in programmen wo man buffer overflows ausnutzen will kann man sich den auch nicht aussuchen.
und falls du den exploit meinst: meinst du ich soll das so machen wie in "smashing the stuck for fun and profit"?
ich habe dieses tagelang gelesen, und da ich momentan praktikum mache den ganzen tag vorm PC zeit. doch ich kann dieses tutorial nicht verstehen, schon garnicht die vorgehnsweise. ausserdem finde ich es blöd das exploit und buffer overflow am anfang immer in einem programm ist.
daher versuche ich mir das an einem anderen tutorial beizubringen, was ich sehr gut versehe, nachvollziehen kann und auch sinn für mich macht.
und so wie oben angegeben funktioniert es auch - bin etwas weiter gekommen, wenn ich zuhause bin werde ich mal code posten, wo ein exploit mit dem buffer overflow auf die oben geschriebene weise geht
-
Ist das das Tutorial von Astalavista?
Wenn nicht, dann könnt ich dir das zukommen lassen,ist in deutsch.
Habe leider den Link zur Site nicht, hab das nur auf meiner HDD.
-
nein das ist das tutorial von zotteljedi...
kannst du mir das tutorial von dem du sprachest zukommen lassen?
admin@pl-boards.de <- meine email adresse