Diventa Autore per CoreTech | Scopri di più
04/03/21 CoreTech Blog
La navigazione forzata, è una tecnica di attacco contro siti Web e applicazioni Web mal protetti, che consente all'autore dell'attacco di accedere a risorse a cui non dovrebbe essere in grado di accedere. Tali risorse possono contenere informazioni sensibili. La navigazione forzata è un problema comune di sicurezza delle applicazioni web causato da una codifica imprudente.
La navigazione forzata è formalmente definita da Mitre in CWE-425 . Nell'ultima OWASP Top-10 2017 del progetto Open Web Application Security, la navigazione forzata non è considerata una categoria separata ma inclusa nella categoria A5: 2017-Broken Access Control .
Di seguito sono riportati alcuni esempi di attacchi di navigazione forzata.
Lo sviluppatore del sito Web o dell'applicazione Web crea un URL difficile da indovinare per una risorsa preziosa utilizzando nomi di file e nomi di directory non convenzionali. Questo URL consente l'accesso a funzioni privilegiate senza autenticazione. Per esempio:
https://www.example.com/administration/administersite.php
Lo sviluppatore presume che l'URL sia troppo complesso da indovinare, non sia collegato, non sia indicizzato o inviato a Google, e quindi nessuno lo troverà sicuramente. Tuttavia, l'attaccante scopre questo URL (ad esempio, utilizzando l'ingegneria sociale o altre tecniche e strumenti di scansione come l'enumerazione di directory brute-force, l'enumerazione dei file, l'enumerazione delle risorse, ecc.), Vi accede e ottiene l'accesso come amministratore. Nonostante ciò che pensano molti sviluppatori, identificare le risorse non è affatto difficile per un utente malintenzionato esperto.
Lo sviluppatore di un sito Web o di un'applicazione Web utilizza l'autenticazione semplice. Una volta che un utente è stato autenticato, può accedere a qualsiasi URL del sito.
L'aggressore è un utente del sito. Prima accedono alla seguente pagina web:
https://www.example.com/userdata.php?id=2258
Quindi, inseriscono il seguente URL nella barra degli indirizzi del browser, tentando di utilizzare un parametro URL che rappresenta un altro utente:
https://www.example.com/userdata.php?id=2262
Se l'autenticazione è troppo semplice, sono in grado di ottenere l'accesso a dati sensibili appartenenti a qualsiasi altro utente. Possono anche provare il seguente ID:
https://www.example.com/userdata.php?id=1
In molti casi, ID = 1 può appartenere a un utente amministratore e la pagina può contenere informazioni preziose che consentiranno all'aggressore di intensificare il proprio attacco.
La navigazione forzata è strettamente correlata ad altri problemi di sicurezza delle applicazioni web simili, come riferimenti a oggetti diretti non sicuri e elenchi di directory . Ad esempio, se un server Web ha l'elenco delle directory attivato, la navigazione forzata potrebbe consentire all'autore dell'attacco di accedere a informazioni cruciali. Ecco alcuni esempi:
https://www.example.com/source-code/
https://www.example.com/configuration/
https://www.example.com/backup/
Per evitare attacchi di navigazione forzata, lo sviluppatore non deve mai presumere che soluzioni semplici siano sufficienti per la sicurezza dei dati dell'applicazione:
Per scoprire potenziali vulnerabilità, è necessario utilizzare una scansione delle vulnerabilità delle applicazioni Web efficiente e automatizzata utilizzando uno strumento come Acunetix. Questo ti aiuterà a trovare la maggior parte dei problemi molto rapidamente ed eliminarli prima che un utente malintenzionato possa sfruttarli. Dovresti anche eseguire un test di penetrazione manuale per trovare problemi difficili da scoprire automaticamente, come la navigazione forzata.