Tehtävä 3 (1 piste):

Tee Googlen Gruyere’stä “Web Application Exploits and Defenses (Part 3)”. Huomaathan, että osassa yksi (Part 1) on ohjeita, jollet niitä vielä käynyt viime viikolla läpi. Tehtävän 1 voi tehdä ilman paikallista asennusta, mutta jos teet tehtävän 2, paikallinen asennus on tarpeen.

https://google-gruyere.appspot.com/

Varaudu esittämään vastauksesi. Jos teet tämän etänä, palauta kuvaus siitä, mitä teit ja mitä sait tulokseksi

Tehtävä 2 (3 pistettä): Korjaa tehtävän 1 haavoittuvuudet Gruyere’n lähdekoodista .

Tehtävä 3 (2 pistettä): Asenna AFL-fuzzer -työkalu http://lcamtuf.coredump.cx/afl/

http://lcamtuf.coredump.cx/afl/QuickStartGuide.txt

Käännä oheinen esimerkkikoodi afl-gcc:llä, esim.

afl-gcc tidy.c

Käynnistä fuzzer, esim:

AFL_SKIP_CPUFREQ=1 afl-fuzz  -i input/ -o output/ ./a.out

(Tee input ja output -kansiot ja laita input-kansioon jokin mielellään kohtuullisen pieni tiedosto)

Fuzzer löytää toisen syötteen, joka johtaa ohjelman keskeytymiseen, mutta ei toista. Mihin tämä perustuu?
Miten ”coverage”-pohjainen fuzzaus toimii?


Attachments:

tidy.c (application/octet-stream)