Some APIs will strip certain leading characters from a string of parameters. An adversary can intentionally introduce leading \'ghost\' characters (extra characters that don't affect the validity of the request at the API layer) that enable the input to pass the filters and therefore process the adversary's input. This occurs when the targeted API will accept input data in several syntactic forms and interpret it in the equivalent semantic way, while the filter does not take into account the full spectrum of the syntactic forms acceptable to the targeted API.
Description
Attack Execution Flow
Step 1
Explore[Survey the application for user-controllable inputs] Using a browser, an automated tool or by inspecting the application, an adversary records all entry points to the application.
Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make special note of any links that include parameters in the URL.
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application.
Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.
Manually inspect the application to find entry points.
[Survey the application for user-controllable inputs] Utilizzando un browser, uno strumento automatizzato o ispezionando l'applicazione, un adversary registra tutti i punti di ingresso dell'applicazione.
Utilizza uno strumento di spidering per seguire e registrare tutti i link e analizzare le pagine web per individuare i punti di ingresso. Prendi nota in particolare di eventuali link che includono parametri nell'URL.
Utilizza uno strumento proxy per registrare tutti i punti di ingresso di input utente visitati durante una navigazione manuale dell'applicazione web.
Utilizza un browser per esplorare manualmente il sito e analizzare come è strutturato. Sono disponibili numerosi plugin per browser che facilitano l'analisi o automatizzano la scoperta.
Ispeziona manualmente l'applicazione per trovare i punti di ingresso.
Attack Techniques
-
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application.
-
Manually inspect the application to find entry points.IT: Utilizza uno strumento proxy per registrare tutti i punti di ingresso di input utente visitati durante una scansione manuale dell'applicazione web.
-
Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.IT: Utilizza uno strumento proxy per registrare tutti i punti di ingresso di input utente visitati durante una scansione manuale dell'applicazione web.
-
Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make special note of any links that include parameters in the URL.IT: Utilizza uno strumento proxy per registrare tutti i punti di ingresso di input utente visitati durante una scansione manuale dell'applicazione web.
Step 2
Experiment[Probe entry points to locate vulnerabilities] The adversary uses the entry points gathered in the 'Explore' phase as a target list and injects various leading 'Ghost' character sequences to determine how to application filters them.
Add additional characters to common sequences such as '../' to see how the application will filter them.
Try repeating special characters (?, @, #, *, etc.) at the beginning of user input to see how the application filters these out.
[Individuazione dei punti di ingresso per individuare vulnerabilità] L'attore malevolo utilizza i punti di ingresso raccolti nella fase "Explore" come lista di target e inietta varie sequenze di caratteri 'Ghost' principali per determinare come i filtri dell'applicazione le gestiscono.
Aggiungi caratteri supplementari alle sequenze comuni come "../" per verificare come l'applicazione le filtra.
Prova a ripetere caratteri speciali (?, @, #, *, ecc.) all'inizio dell'input utente per vedere come l'applicazione li filtra.
Attack Techniques
-
Try repeating special characters (?, @, #, *, etc.) at the beginning of user input to see how the application filters these out.
-
Add additional characters to common sequences such as "../" to see how the application will filter them.IT: Prova a ripetere caratteri speciali (?, @, #, *, ecc.) all'inizio dell'input utente per verificare come l'applicazione filtra questi elementi.
Step 3
Exploit[Bypass input filtering] Using what the adversary learned about how the application filters input data, they craft specific input data that bypasses the filter. This can lead to directory traversal attacks, arbitrary shell command execution, corruption of files, etc.
[Bypass input filtering] Utilizzando le informazioni apprese dall'attaccante su come l'applicazione filtra i dati di input, questi creano dati di input specifici che aggirano il filtro. Ciò può portare a attacchi di directory traversal, esecuzione arbitraria di comandi shell, corruzione di file, ecc.