Po drátě 2: Řešení úlohy č. 3

Přihlásit se jako administrátor s heslem z předchozích úloh nešlo, bylo potřeba nechat si "zapomenuté" heslo poslat mailem. Skript retrievepass.php byl ale "špatně ošetřený", někdo do něj zapomněl doplnit administrátorský e-mail.

Řešením bylo podstrčit skriptu proměnnou admin_email tak, aby nebylo poznat, že je podstrčená. Požadavek musel vypadat nevinně - být z "podporovaného" prohlížeče, se správným refererem, a navíc skript kontroloval, zda mu proměnnou nepředáváte jako GET parametr.

Tedy například takto:

curl -e http://www.podrate.cz/podrate2/admin/admin.html \
	-A "Mozilla/5.0" \
	-d admin_email=muj.mail@seznam.cz \
	http://www.podrate.cz/podrate2/admin/retrievepass.php

Pak skript povolil a heslo unclehacker vydal. Kdo se s ním zkusil do administrace skutečně přihlásit, dozvěděl se pouze to, že má stejné heslo použít pro získání další úlohy.

Autorským řešením bylo nastavit si cookie admin_email, například zadáním javascript:document.cookie='admin_email=muj.mail@seznam.cz' do adresního řádku prohlížeče, a pak jen kliknout...