scaforchio / LAMPSchool

Repository ufficiale di LAMPSchool
GNU Affero General Public License v3.0
20 stars 21 forks source link

Durata validità seme troppo lunga (login.php) #3

Closed vittodevit closed 4 years ago

vittodevit commented 4 years ago

PROBLEMA Il seed che viene usato all'accesso (login/login.php) per creare l'hash MD5 della password ha una durata di validità troppo lunga. Se catturato su connessione non sicura (con eccezioni anche per connessioni sicure*) può essere utilizzato entro le 23.59 del giorno stesso per accedere al registro. $seme = md5(date('Y-m-d')); -> il seme viene calcolato usando la data. Per utilizzare l'hash al login basta usare un software per modificare le richieste (es. BURP Suite CE).

DIMOSTRAZIONE Nel video simulo la cattura di un hash utilizzando il software WIRESHARK. Tutto quanto è stato fatto in locale sul mio pc ma è possibile comunque dirottare la connessione o sniffare il traffico con tanti metodi diversi come l'ARP Poisoning. Per questioni di semplicità ho preferito non includerlo nella dimostrazione e simulare la cattura in locale. Una volta catturato l'hash uso il software precedentemente citato (BURP Suite) per modificare la richiesta ed inserire l'hash catturato al posto della password. Effettuo il login con username alit2098 e password ciao. Inserisco l'hash reale della mia password catturato e sono dentro il registro senza effettivamente conoscere la password originale.

VIDEO DIMOSTRAZIONE https://youtu.be/PcOC5_-R-sM

*SPIEGAZIONE ECCEZIONE ()** L'hash può essere catturato anche su connessioni sicure utilizzando qualche tipo di proxy o metodi di attacco simili (es. mitmproxy - https://github.com/mitmproxy/mitmproxy). Per quanto riguarda la protezione dai proxy ed il controllo dell'origine della richiesta presenti nel file login/ele_ges.php a partire dalla riga 25, possono essere facilmente bypassati, spiegazione nel prossimo issue.

Edit: sistemato url del video non funzionante