Většina informací potřebných pro řešení této úlohy zazněla na přednášce. Dále se vám může hodit vědět následující:
nm.
as –32, či gcc -m32 source.s (gcc automaticky kompiluje přípony .s a .S pouze assemblerem).
objcopy můžete vykopírovat “holé” strojové instrukce z programu. Např. příkaz objcopy -O binary –only-section=.text –only-section=.rodata prog prog.bin vykopíruje z programu prog kód (.text) a read-only data (globální proměnné deklarované jako const).
objcopy) můžete příkazem objdump -D -b binary -m i386 prog.bin nebo ndisasm -b 32 prog.bin.
nc, wget nebo curl.
Tato úloha není povinná.
Vytvořte útok na tento webový server. Můžete si vybrat z několika různě složitých variant útoku:
/tmp/secret.txt – 5 bodů.
Do odevzdávacího systému nahrávejte archiv, který bude obsahovat
všechny vaše zdrojové soubory a spustitelný soubor exploit. Ten
bude spuštěn a jako parametr mu bude předáno URL webového serveru, na
který má zaútočit. Např. ./exploit http://localhost:8080. V
případě 1. varianty zadání nebude na stdout vypsáno nic, u 2. varianty
se tam vypíše obsah souboru /tmp/secret.txt. 3. variantu
odevzdávací systém netestuje, počítá se pouze změna obrázku na
produkčním serveru.