
Estensione Burp per testare problemi di autorizzazione. Ripetizione automatica delle richieste ed estrazione dei valori dei parametri al volo.
L'estensione Burp ti aiuta a trovare bug di autorizzazione. Basta navigare nell'applicazione web con un utente con privilegi elevati e lasciare che Auth Analyzer ripeta le tue richieste per qualsiasi utente non privilegiato definito. Con la possibilità di definire parametri, Auth Analyzer è in grado di estrarre e sostituire automaticamente i valori dei parametri. In questo modo, ad esempio, i token CSRF o persino intere caratteristiche di sessione possono essere estratti automaticamente dalle risposte e sostituiti nelle richieste successive. Ogni risposta verrà analizzata e contrassegnata in base al suo stato di bypass.
Esistono altre estensioni Burp che fanno sostanzialmente cose simili. Tuttavia, la potenza della funzionalità dei parametri e dell'estrazione automatica dei valori è il motivo principale per scegliere Auth Analyzer. Con questo non devi conoscere il contenuto dei dati che devono essere scambiati. Puoi facilmente definire i tuoi parametri e cookie e Auth Analyzer catturerà al volo i valori necessari. Auth Analyzer non effettua richieste preflight. Fa sostanzialmente la stessa cosa della tua app web. Con i tuoi ruoli/sessioni utente definiti.
(1) Crea o clona una sessione per ogni utente che desideri testare.
(2) Salva e carica la configurazione della sessione
(3) Specifica le caratteristiche della sessione (intestazione/i e/o parametro/i da sostituire)
(4) Imposta i filtri se necessario
(5) Avvia / Ferma e Metti in pausa Auth Analyzer
(6) Specifica il filtro della tabella
(7) Naviga nell'app web con un altro utente e traccia i risultati delle richieste ripetute
(8) Esporta i dati della tabella in XML o HTML
(9) Analizza manualmente le richieste/risposte originali e ripetute

Se hai le risorse che desideri testare nella tua sitemap, è molto facile e veloce eseguire i test di autorizzazione. Nel primo passo definisci le sessioni che desideri testare. Poi espandi la tua sitemap, seleziona le risorse e ripeti le richieste tramite il menu contestuale. Inoltre puoi definire alcune opzioni su quali richieste ripetere e quali no. Con questo puoi eseguire test di autorizzazione di un sito web complesso in pochi secondi.
Auth Analyzer ha la possibilità di definire parametri che vengono sostituiti prima di ripetere la richiesta per la sessione data. Il valore per il parametro specificato può essere impostato secondo diverse esigenze.
Il valore del parametro verrà estratto se si verifica in una risposta con uno dei seguenti vincoli:
Una risposta con un'intestazione Set-Cookie con un nome di cookie impostato al Nome del Campo di Estrazione definito
Una Risposta di Documento HTML contiene un campo di input con l'attributo name impostato al Nome del Campo di Estrazione definito
Una Risposta JSON contiene una chiave impostata al Nome del Campo di Estrazione
Per impostazione predefinita, Auth Analyzer tenta di estrarre automaticamente il valore del parametro da tutte le posizioni. Tuttavia, facendo clic sull'icona delle impostazioni del parametro è possibile limitare la posizione di estrazione automatica secondo le proprie esigenze.

Il parametro verrà estratto se la risposta contiene la Stringa Da e la Stringa A specificate in una riga. La stringa Da-A può essere impostata manualmente o direttamente tramite il menu contestuale corrispondente. Basta contrassegnare la parola che si desidera estrarre in qualsiasi risposta e impostare come Estrai Da-A per il parametro desiderato.
Per impostazione predefinita, Auth Analyzer tenta di estrarre il valore dall'intestazione e dal corpo nella maggior parte delle risposte testuali. Tuttavia, facendo clic sull'icona delle impostazioni del parametro è possibile limitare la posizione di estrazione Da-A secondo le proprie esigenze.

È possibile definire un valore di parametro statico. Questo può essere utilizzato ad esempio per token CSRF statici o credenziali di accesso.
Verrà richiesto un input se il parametro definito è presente in una richiesta. Questo può essere utilizzato ad esempio per impostare codici 2FA.
Se un valore è impostato (estratto o definito dall'utente), verrà sostituito se il parametro corrispondente è presente in una richiesta. Le condizioni per la sostituzione dei parametri sono:
Il parametro verrà sostituito se è presente in una delle seguenti posizioni:

Nel Percorso (ad es. /api/user/99/profile --> se è presente un parametro chiamato user, il valore 99 verrà sostituito)
Parametro URL (ad es. email=hans.wurst[a]gmail.com)
Parametro Cookie (ad es. PHPSESSID=mb8rkrcdg8765dt91vpum4u21v)
Parametro Body sia URL-Encoded che Multipart Form Data
Parametro JSON (ad es. {"email":"hans.wurst[a]gmail.com"})
Per impostazione predefinita, il valore del parametro verrà sostituito in ogni posizione. Tuttavia, facendo clic sull'icona delle impostazioni del parametro è possibile limitare la posizione secondo le proprie esigenze.

Il parametro definito può essere rimosso completamente, ad esempio per testare i meccanismi di controllo CSRF.
Definisci nome utente e password come valore statico. Il nome del cookie di sessione deve essere definito come estrazione automatica. Verifica di iniziare a navigare nell'applicazione senza alcun cookie di sessione impostato. Accedi all'app web. Auth Analyzer ripeterà la richiesta di login con i parametri statici e otterrà automaticamente la sessione tramite l'intestazione Set-Cookie. Questo cookie verrà utilizzato per le richieste successive della sessione data. Il cookie definito sarà trattato come un parametro, quindi non è necessario definire alcuna intestazione Cookie.

Suggerimento: Puoi limitare le condizioni di estrazione e sostituzione per un parametro per evitare malfunzionamenti nella fase di estrazione/sostituzione.

Definisci un'intestazione Cookie e un token CSRF (con estrazione automatica del valore). Il valore del token CSRF verrà estratto se è presente in un Tag Input HTML, un'Intestazione Set-Cookie o una Risposta JSON della sessione data.

Poiché il metodo Estrazione Automatica funziona solo su Campi di Input HTML, Oggetti JSON o Intestazioni Set-Cookie, dobbiamo utilizzare il metodo di estrazione generico chiamato Da Stringa a Stringa. Con questo metodo di estrazione possiamo estrarre qualsiasi valore da una risposta se si trova tra una stringa iniziale e finale univoca. Auth Analyzer fornisce un metodo dal menu contestuale per impostare automaticamente la Stringa Da e la Stringa A. Basta contrassegnare la stringa che si desidera estrarre e impostare come Estrai Da-A tramite il menu contestuale.

Poiché l'intestazione Authorization non viene trattata come un parametro (come avviene con l'intestazione Cookie), possiamo utilizzare un punto di inserimento dell'intestazione per ottenere ciò che vogliamo. Basta contrassegnare e fare clic con il tasto destro sul valore che si desidera sostituire nell'intestazione specificata. Il valorepredefinito verrà utilizzato se nessun valore del parametro è stato ancora estratto.

Crea tutte le sessioni che desideri per testare più ruoli contemporaneamente.

Basta premere Rinnova nel pannello di stato della sessione o ripetere la richiesta interessata tramite il menu contestuale (clic con il tasto destro del mouse nella voce della tabella). Suggerimento: La(e) richiesta(e) di login può(sono) essere contrassegnata(e) e filtrata(e) successivamente.

Le richieste originali possono essere eliminate per testare operazioni idempotenti (ad es. una funzione DELETE).

Se un utente anonimo necessita di una caratteristica valida (ad es., un valore di cookie valido) devi definire l'intestazione come al solito. Altrimenti, puoi definire un'intestazione da rimuovere come segue:

Puoi facilmente testare un gran numero di endpoint sulle loro impostazioni CORS individuali aggiungendo un'intestazione Origin in Intestazione(i) da sostituire e selezionando Test CORS nel Pannello della Sessione. Selezionando Test CORS, Auth Analyzer cambierà il metodo HTTP in OPTIONS prima di ripetere la richiesta.

Un parametro specificato può essere rimosso selezionando la Casella di controllo Rimuovi. Questo può essere utilizzato ad esempio per testare il meccanismo di controllo CSRF.

Auth Analyzer fornisce una vista di confronto integrata per verificare le differenze tra due risposte. Basta contrassegnare il messaggio che si desidera analizzare e cambiare la vista del messaggio (1). Ora sei in grado di confrontare le due richieste (2) (3). La funzione Diff integrata calcolerà e mostrerà le differenze tra le due richieste in tempo reale (4).

Vista Diff espansa:

Auth Analyzer dovrebbe elaborare due tipi di richieste/risposte:
La risposta contiene un valore che deve essere estratto
La risorsa richiesta non dovrebbe essere accessibile dalla(e) sessione(i) definita(e)
Ad esempio, non vogliamo elaborare un file JavaScript statico perché è accessibile a tutti e (si spera) non contiene dati protetti. Per raggiungere questo obiettivo, possiamo impostare i seguenti tipi di filtri:
Entrambe le risposte hanno lo stesso corpo della risposta e lo stesso codice di rispostaEntrambe le risposte hanno lo stesso codice di risposta e Entrambe le risposte hanno +-5% della lunghezza del corpo della risposta