Table of Contents

Útok pomocí přetečení zásobníku

Domácí příprava

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ůžou hodit i následující informace:

Zadání

V neděli 3. 12. byl změněn kód serveru. Důvod je následující: Během prvního cvičení byla v serveru narychlo opravena chyba, která neočekávaně způsobila změnu pořadí proměnných na zásobníku, což znemožňovalo jednoduché útoky. Aktuální verze serveru opět jednoduché útoky umožňuje. Navíc, protože adresa zásobníku se mezi jednotlivými počítači může lišit, obsahuje nová verze i nápovědu, která vám útok usnadní. Odevzdávací systém má prodloužen deadline a testuje vaše útoky proti oběma verzím, takže, pokud máte funkční útok na původní verzi, bude vám fungovat. Kvůli odevzdávacímu systému jsme ještě museli drobně změnit zadání: Soubor secret.txt byl přesunut z /home do /tmp.

Tato úloha není povinná.

Vytvořte útok na tento webový server. Můžete si vybrat ze dvou variant řešení:

  1. Způsobte, že server vypíše na svůj standardní výstup řádku “pwned!” (bez uvozovek) – 4 body.
  2. Zjistěte, co je na serveru v souboru /tmp/secret.txt – 5 bodů.

Do odevzdávacího systému nahrávejte archiv, který bude mimo jiné obsahovat 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.

Nápověda