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.