Abbiamo utilizzato Burp Suite per dimostrare un esperimento sull'enumerazione degli ID di sessioni creati utilizzando il linguaggio PHP. Il codice sorgente utilizzava un meccanismo vulnerabile nel creare l'ID di sessione assegnando un valore numerico in un intervallo predeterminato e collegandolo al profilo dell'utente. Quando l'ID di sessione non viene generato in modo casuale, rende l'applicazione Web vulnerabile agli attacchi di dirottamento della sessione. Abbiamo utilizzato la sfida Natas Level 18 – 19 dei giochi di guerra OverTheWire a scopo dimostrativo. . Questo faceva parte OverTheWire War Games Natas Livello 18 – 19

Ottieni le note sul certificato OSCP

Appunti pratici della suite Burp

Password di livello 19 di Natas

8LMJEhKFbMKIL2mxQKjv0aEDdk7zpT0s

Trascrizione video

Cosa sta succedendo ragazzi? Bentornati a questo video oggi. Stiamo realizzando WarGames via cavo.
E affronteremo il livello 18. Quindi l'ultimo video che abbiamo fatto era al livello 17, stavano facendo il livello 18 e vi ricorderò ragazzi che di notte è il livello o la notte mette alla prova la nostra penetrazione delle applicazioni web testare le sfide. Quindi andiamo all'avviso 18 dopo aver fornito la password del livello precedente.

Vedrò un modulo di accesso. Ok, facciamo clic su Visualizza codice sorgente poiché si tratta di una sorta di test con penna a scatola bianca. Abbiamo accesso al codice sorgente dell'applicazione. Quindi facciamo clic su Visualizza codice sorgente.
E la prima cosa che notiamo qui è questa linea? Questa riga definisce una variabile denominata Max ID, questa variabile è uguale a 640.
Se leggiamo il codice. In questa riga c'è una funzione per creare un ID. E come puoi vedere qui, viene generato l'ID. Essere compreso tra 1 e l'ID massimo che è stato definito in precedenza nel codice come uguale o uguale a 640. Quindi scorrendo verso il basso più tardi. Vediamo qui la funzione responsabile della generazione della sessione.

Ed ecco cosa otteniamo se abbiamo la sessione corretta, quindi in pratica il problema in questo codice sta qui: l'ID di sessione o questo numero viene utilizzato per generare l'ID di sessione. Va bene. Ora gli ID di sessione se l'aggressore è in grado di indovinarli o generarli o trovare l'ID di sessione corretto per l'utente che se ne occupa.
L'aggressore potrà accedere al profilo dell'utente senza la necessità di trovare la password. Quindi chiamiamo questo dirottamento della sessione. E qual è il problema qui? Il problema è che la sessione è definita o viene generato un numero generato compreso tra uno e seicentoquaranta.

Ciò significa che la maggior parte degli utenti registrati su questo sito Web. Ok, come utenti. Ok, questi utenti hanno tali ID tra uno.
E 640 significa che siamo in grado di indovinare quale ID utente appartiene a quale utente saremo in grado di accedere a qualsiasi profilo utente.

Quindi questo è il problema in questo codice. Ora l'alternativa sicura a questo è generare casualmente l'ID di sessione.

Non possiamo definire un valore o un intervallo specifico per l'ID di sessione. Va bene. Quindi, cosa fai qui, possiamo risolvere questa sfida usando due metodi. Possiamo farlo usando Python. Creiamo uno script e applichiamo la forza bruta all'ID di sessione dell'utente amministratore. Fondamentalmente proveremo i numeri compresi tra uno e sei quaranta con ogni sessione per vedere quale finisce con l'utente amministratore oppure avremo bisogno di usare burp Suite che userò in questo video perché ne abbiamo fatti molti sfide in cui risolviamo la sfida utilizzando Python oggi. Useremo il dolce viola. Torniamo indietro e apriamo Burp Suite Diamo prima un'occhiata alla richiesta quindi diciamo di avviare admin admin.

Adesso simuliamo una richiesta di accesso utilizzando il nome utente admin e la password admin.
Quindi ora possiamo intercettare la risposta perché vogliamo vedere il cookie assegnato.

Diamo un'occhiata qui. Come potete vedere ragazzi nella risposta. Vediamo che l'ID sessione è impostato su 498.
Va bene. Ora quello che faremo sarà prendere questo e inviarlo all'Intruso. Ok, quindi ora inoltreremo e ora imposteremo di nuovo l'intercettazione o andremo di nuovo alla richiesta di intercettazione. Quindi aggiorna.

Quindi ora simuliamo la richiesta ancora una volta. Va bene, quindi questa è di nuovo la richiesta e qui nota che la richiesta è ottenere richieste.
E un'altra cosa da notare qui è l'ID della sessione. Quindi lo faremo qui. Ora vogliamo forzare l'ID sessione per trovare il numero corretto legato all'account amministratore. Ok, quindi vogliamo inviarlo all'Intruso prima di farlo. Dobbiamo rimuoverlo in qualche modo, dobbiamo rimuovere questa riga.
Vogliamo solo mantenere l'ID della sessione. E poi è pronto per essere inviato all'intruso.

Andare avanti. Definirebbe le posizioni del carico utile da cancellare e impostare la posizione. Da zero. Quindi qui evidenziamo l'ID della sessione e facciamo clic su AGGIUNGI. E ora l'ID della sessione è evidenziato, quindi definiamo il tipo di payload. Quindi impostiamo il tipo due numeri e qui impostiamo la sequenza. Quindi inizieremo diciamo da zero e saliremo fino a raggiungere 1000. Puoi definirne di più ma non definire meno di 700 o giù di lì.

140 e poi si va all'attacco. Va bene, quindi ora che è iniziato.
Come puoi vedere qui, tutte le richieste hanno una lunghezza simile nella risposta. Dai un'occhiata qui. La maggior parte di loro sono 608 608 607 scusa 67 e quindi 67 termina con 68. Quindi cercheremo una risposta che sia di dimensioni molto diverse, molto lontana da questa lunghezza.

In modo che sappiamo che abbiamo una risposta diversa per questa richiesta. Diamo un'occhiata alla richiesta, prendiamo nota dell'ID della sessione e lo proveremo. Aspettiamo adesso.
Ok, quindi l'Intruso ha finito e qui ho trovato l'ID 119 che ha generato la diversa risposta al rischio. Quindi lo inseriremo come nuovo ID di sessione e lo diremo avanti.
Controllando il browser e come potete vedere ragazzi, questo è il bastardo per il livello successivo. Quindi l'ID ideale corretto era 119.

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