| assets/images | ||
| README.md | ||
iForgot
Descrizione
Autore: bennesp
Qualcuno è davvero molto fiducioso di aver eliminato tutto quello che serviva per risolvere la challenge, ma forse è rimasto ancora qualcosa di nascosto in giro...
Sito: http://iforgot.challs.olicyber.it/
Strumenti e conoscenze necessarie
Strumenti: comando git
È necessario conoscere bene git e come funziona la cartella .git
Spiegazione
Abbiamo una pagina web in cui non è presente alcun dato informativo che ci può aiutare o suggerirci la flag. Se guardiamo nei cookie sappiamo che non ci sono cookie interessanti, e non ci sono neanche script html o css con ispeziona.
La descrizione del sito ci suggerisce che qualcosa è nascosto, cosa possiamo vedere per sapere una lista di file o cartelle in un sito remoto?
Indizzi
Apri indizio 1
Forse l'autore si è dimenticato di togliere una cartella che permette di tornare "indietro" nella storia?
Apri indizio 2
Hai dato un occhio a /robots.txt?
Soluzione
Apri soluzione
Prima di tutto possiamo controllare il file /robots.txt.
Robots.txt è un file che definisce quali cartelle o file sul sito i crawler di google o i crawler in generale possono visitare, per cui potrebbe anche esserci una lista di file nascosti.
Visitando /robots.txt possiamo vedere che esistono 3 file o cartelle interessanti:
A questo punto sappiamo che c'è una cartella .git (ricordiamo che una repository git contiene una cartella .git), un file index.js e un file package.json.
Controllando il file index.js, vediamo che contiene il codice del server:
(Piccola nota: sappiamo che è un server in node,js visto che è presente un package.json creato da npm)
Ora tutto quello che ci serve è ottenere lo storico del file, perchè sicuramente sappiamo che il flag era presente nella repository.
Per cui possiamo utilizzare uno strumento come git-dumper che estrae da una cartella .git esposta nel web tutti i dati necessari per ricostruire la repository.
Quindi in una nuova cartella, creiamo un ambiente virtuale python, e installiamo git-dumper (potete anche installarlo direttamente sul sistema):
python -m venv venv <- questo crea un ambiente virtuale python nella cartella corrente
source venv/bin/activate <- questo attiva l'ambiente virtuale su linux (dice a linux di utilizzare la versione di python e pip presente nella cartella venv)
pip install git-dumper <- questo installa git-dumper nel nostro ambiente virtuale
Una volta installato git-dumper possiamo utilizzare il comando git-dumper per scaricare la repository remota del sito web:
Questo creerà la cartella repo-remota, entrando nella cartella un semplice git log ci dirà lo storico della repository:
git log mostra che esiste un'altro commit (praticamente uno screenshot del codice) all'interno della repository, quindi possiamo 'viaggiare' a quello snapshot / screenshot del codice con git checkout
Prendendo il nome del commit (la stringa alfa-numerica accanto al messaggio di commit), usiamo git checkout <nome del commit> per viaggiare a quel commit:
Con git checkout ora siamo su quel commit, guardando di nuovo la cartella in cui siamo vediamo che il file flag.txt con la flag al suo interno ora è presente.




