Navigazione forzata
Un URL scollegato non è un controllo di autorizzazione.
Cos’è Navigazione forzata?
Esiste un percorso, nulla nell'interfaccia si collega ad esso e risponde a chiunque indovini il percorso. La segretezza dei nomi delle cartelle non è un controllo di accesso. Senza account, eseguirai un elenco di parole per il rilevamento dei contenuti su una piattaforma di persone e troverai un percorso di esportazione interno che risponde a 200 OK con la directory completa dei dipendenti, senza bisogno di cookie o chiave API. Quindi aggiungi il gate che non ha mai avuto, un controllo della sessione e del ruolo prima che venga letta una singola riga e riproduci la richiesta a un 403.
Cosa imparerai in Navigazione forzata
- Distinguere la navigazione forzata dall'escalation dei privilegi: la prima non presuppone alcuna sessione, la seconda presuppone la sessione sbagliata
- Riconoscere che un segmento di percorso come <code>/internal/</code> o <code>/admin/</code> è una convenzione, non un controllo, il gestore è il cancello
- Comprendi che gli strumenti di rilevamento dei contenuti (ffuf, dirbuster, gobuster) rendono inutile la segretezza del percorso in pochi minuti
- Applicare un controllo della presenza della sessione e del ruolo nella parte superiore di ogni gestore che legge o scrive dati sensibili
- Controlla la base di codice per le rotte orfane fornite per uno strumento, che sono state sostituite e non sono mai state eliminate
Navigazione forzata — Fasi della formazione
-
Dimensionare il bersaglio
Bob è un aggressore motivato finanziariamente. Trova aziende che hanno lasciato qualcosa esposto sull'Internet pubblica, poi vende ciò che tira fuori o lo usa per ottenere i loro soldi. Oggi si rivolge a Kelvara, una piattaforma personale su cui le aziende gestiscono le buste paga e le risorse umane. Inizia da dove chiunque farebbe, sul sito pubblico, valutando l'azienda prima di cercare un modo per entrarvi.
-
Mappa l'albero API
Niente sul sito pubblico è insolito: un accesso, un tour del prodotto, una pagina di supporto. Ma un'app risponde a molti più percorsi di quelli a cui si collega. Tutto ciò che uno sviluppatore ha lasciato raggiungibile rimane raggiungibile da chiunque vada a cercarlo, quindi Bob mappa ogni percorso a cui risponde effettivamente l'API del portale.
-
Apri il percorso di esportazione
L'unico percorso che ha risposto senza problemi è un URL come qualsiasi altro. Bob non ha bisogno di nessuno strumento per questo: digita il percorso scoperto direttamente nel browser e preme invio, come se aprisse qualsiasi pagina.
-
L'intera directory, nessun login
La risposta non è una pagina di errore. Il browser lo visualizza in linea: l'intera directory dei dipendenti di Kelvara, migliaia di record, consegnati a una richiesta che non prevedeva alcun accesso.
-
Verifica della conoscenza
Hai osservato che un URL indovinato restituisce dati sensibili a una richiesta senza credenziali. Blocca il motivo per cui l'endpoint era raggiungibile.
-
Viene visualizzato l'avviso DLP
Possiedi il portale personale di Kelvara. Durante la notte, il monitoraggio della perdita di dati in uscita ha attivato una risposta che ha portato fuori dalla rete l'elenco completo dei dipendenti, SSN e stipendi inclusi. Le operazioni di sicurezza ti hanno inviato via email i dettagli.
-
Apri il gestore dell'esportazione
Il gestore che crea l'esportazione dei dipendenti è ciò che devi modificare. Aprilo e guarda cosa fa tra l'arrivo della richiesta e l'uscita dei dati.
-
Individua il cancello mancante
Il gestore legge il record di ogni dipendente e lo restituisce. Leggilo da cima a fondo e cerca il controllo di accesso. Non c'è niente tra la richiesta e la query.
-
Verifica della conoscenza
Hai visto il gestore passare dalla richiesta ai dati senza nulla in mezzo. Blocca ciò che effettivamente mantiene privato un percorso come questo.
-
Aggiungi il controllo di accesso
Metti un vero cancello nella parte superiore del gestore. Risolve la sessione del chiamante, conferma che detiene il ruolo hr_admin e rifiuta tutto il resto prima che venga eseguita la query sul database. Il percorso rimane lo stesso; ora è il segno di spunta, non il nome della cartella, a proteggere i dati.
Copertura dei framework di sicurezza
OWASP Top 10
- A01:2025 Broken Access Control
- A01:2021 Broken Access Control
CWE
- CWE-425 Direct Request ('Forced Browsing')
- CWE-862 Missing Authorization
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security