Abbiamo coperto il livello 19-20 di OverTheWire Natas. Questo livello era simile al livello precedente ma con l'ID di sessione non più generato in sequenza e nella nuova sfida, l'ID di sessione viene generato utilizzando un intervallo di numeri da 1 a 640 e poi combinato con il nome utente utilizzato per accedere e infine l'ultimo la stringa è codificata esadecimale. Utilizzando lo scripting Python sono stati in grado di identificare il pattern utilizzato nella creazione dell'ID di sessione e trovare quello associato all'account amministratore. . Questo faceva parte Giochi di guerra OverTheWire Natas Livello 19-20

Ottieni le note sul certificato OSCP

Trascrizione video

Cosa sta succedendo ragazzi, bentornati a questo video oggi faremo giochi CTF via cavo e faremo amore e luci, quindi passeremo da altri 19 al livello 20.
Ok, visitiamo l'URL e vediamo un modulo di accesso, il titolo dice che questa pagina utilizza principalmente lo stesso codice del livello precedente ma gli ID di sessione non sono più sequenziali
quindi in pratica se vai al livello precedente, se ricordi il livello precedente, stavamo forzando brutalmente gli ID di sessione, quindi gli ID di sessione erano prevedibili e gli veniva assegnato un valore numerico nel codice che non va bene dal punto di vista della sicurezza.

Perché puoi usare la Forza Bruta
l'ID di sicurezza o l'ID di sessione e fondamentalmente scoprire qual è l'ID di sessione associato all'account amministratore che è ciò che abbiamo fatto nel video precedente ma ora non è più così perché dice che gli ID di sessione non sono più sequenziali inoltre lo siamo non fornire il codice sorgente significa che si tratta di un test della scatola nera.

Accedi con il tuo account amministratore per recuperare le credenziali per i nativi 20, quindi se accediamo ora con qualsiasi cosa per testare la risposta dell'applicazione web.
Dato che stiamo testando gli ID di sessione, vogliamo dare un'occhiata ora all'ID di sessione dell'utente che utilizziamo per accedere che è Test2, quindi facciamo clic con il pulsante destro del mouse e andiamo a ispezionare ora da qui andiamo all'applicazione
e evidenziamo i cookie, prenderò nota dell'ID di sessione, questa è la sessione se la copiamo e andiamo su cyberchef.

Da hex ora convertiamo il valore da esadecimale nel corrispondente testo ASCII come puoi vedere il risultato è 380-Test 2 quindi l'utente che abbiamo utilizzato fa parte di questo ID di sessione.

Per capirlo di più, dobbiamo tornare indietro e accedere con un utente diverso e vedere come sarà diverso l'ID della decisione, quindi eliminiamo questo cookie da qui
torniamo alla pagina principale e digitiamo questa volta nuovamente test5 login andiamo a ispezionare aspettiamo i cookie facciamo clic sull'ID di sessione andiamo su cyberchef incolliamo l'ID di sessione
e in effetti questo è l'ID della nuova sessione, quindi vedete ragazzi, il nome utente che utilizziamo viene sempre aggiunto come parte del cookie prima della codifica esadecimale
questa volta e questa volta Test2 e test5 e c'è un numero in mezzo prima del nome utente.

Questa volta proveremo ad accedere con un account amministratore, quindi la password admin1 è admin 1 e ora vogliamo dare un'occhiata al cookie
copia il cookie in modo che sia il nuovo cookie ragazzi, quindi include ancora il nome utente admin1 e prima del nome utente c'è un numero, ora proviamo con un altro utente amministratore
quindi eliminiamo l'ultimo cookie admin6 questa volta dai un'altra occhiata ai cookie e ancora come puoi vedere admin6 fa parte del cookie e prima del nome utente c'è il numero
ora vedi che c'è uno schema, quindi quando accediamo per la prima volta con utenti normali, come puoi vedere i cookie, sembrano avere parti comuni che iniziano con 2D 2d74657375 questa è la parte comune per gli utenti o gli utenti regolari.

Se andiamo dagli utenti amministratori ed evidenziamo le parti comuni nei loro ID di sessione possiamo iniziare da qui, quindi cosa dobbiamo fare
dobbiamo presupporre che vogliamo avere accesso all'utente admin solo admin per poterlo fare dobbiamo scoprire dov'è la parte admin in formato esadecimale
quindi mi sembra che questa sia la parte amministrativa in esadecimale per confermare il sospetto, come puoi vedere la parte amministrativa, quindi dobbiamo mantenere costante questa parte amministrativa nel nostro fuzzing e dobbiamo scoprire il numero corretto.

Quindi in pratica procederemo con precisione attraverso numeri simili da zero fino a 640, ok perché 640 era il numero massimo utilizzato per generare gli ID di sessione se ricordi dall'ultima sfida, quindi da 0 a 640 questi numeri vengono generati in base all'intervallo da 0 a 640 quindi vogliamo esaminare questi numeri da 0 a 640 e provarli con l'amministratore e lei direbbe quale ci concederà l'accesso, quindi in pratica stiamo usando forza bruta e fuzzing allo stesso tempo
vediamo come appare in uno script Python.

Ok, quindi la prima cosa che facciamo definiamo l'obiettivo, questo è l'URL verso cui navigheremo e queste sono le credenziali e simuleremo
autenticazione di base utilizzando il protocollo HTTP con le credenziali del livello precedente va bene, poi definiamo i parametri che controllano l'ID della sessione PHP, sono il massimo e
il numero più basso e quello più alto il numero più basso è uno e il numero più alto è di nuovo 640 secondo la sfida precedente quindi tra questi due numeri genereremo gli ID di sessione quindi eseguiamo un ciclo while qui quindi nel ciclo while vogliamo prova ogni possibile ID di sessione ok, l'ID di sessione è composto da due bit il primo bit è il numero compreso tra 0 e 640 e il nome utente stesso vogliamo testare questi numeri ma vogliamo mantenere costante il nome utente che sembra essere admin per farlo, questa è la parte amministrativa
in HEX ed è così che convertiamo il numero compreso tra 1 e 640 in esadecimale quindi come puoi vedere lo prendiamo da
il ciclo While da qui, quindi prima il primo numero sarà uno e poi lo aumenteremo di uno ogni volta che eseguiamo il ciclo
e lo convertiamo in esadecimale alla fine l'ID della decisione arriva così com'è esadecimale.

Il formato esadecimale più le parti di amministrazione questo è il formato esadecimale e questa parte dell'album li aggiungiamo insieme per ottenere questa formula, il numero e il nome utente e poi lo testiamo in una richiesta di base attraverso le intestazioni e le variabili di risposta. Successivamente eseguiamo lo script ora o lo spread dello script stamperà ogni possibile ID di sessione generato durante il processo, ok
ora tutti questi ID di sessione vengono tentati in tempo reale contro la loro applicazione.

Questo era l'ID di sessione che ha generato la risposta corretta che volevamo, quindi diamo un'occhiata a copiarlo e andiamo al browser dove puoi leggere tutto questo, quindi è 281-admin che è il numero corretto che ha generato il cookie che ha eseguito il rendering questo output così.
se scendi possiamo vedere questa risposta sei un amministratore le credenziali per il livello successivo non sono 20 e questa è la password quindi in modo efficace conclude il livello attuale
e ora possiamo tentare di accedere al livello successivo cambiando il 19 nell'URL in 20 ok, quindi proviamo la password e ora siamo al livello 20, lo faremo nei prossimi video ragazzi, per ora concludo questo video e Voglio ringraziarti per la visione, ci vediamo più tardi.

Videoprocedura dettagliata

 

Circa l'autore

Creo note sulla sicurezza informatica, note di marketing digitale e corsi online. Fornisco anche consulenza di marketing digitale, inclusi ma non limitati a SEO, annunci Google e Meta e amministrazione CRM.

Visualizza articoli