This attack is a specific variation on leveraging alternate encodings to bypass validation logic. This attack leverages the possibility to encode potentially harmful input in UTF-8 and submit it to applications not expecting or effective at validating this encoding standard making input filtering difficult. UTF-8 (8-bit UCS/Unicode Transformation Format) is a variable-length character encoding for Unicode. Legal UTF-8 characters are one to four bytes long. However, early version of the UTF-8 specification got some entries wrong (in some cases it permitted overlong characters). UTF-8 encoders are supposed to use the \'shortest possible\' encoding, but naive decoders may accept encodings that are longer than necessary. According to the RFC 3629, a particularly subtle form of this attack can be carried out against a parser which performs security-critical validity checks against the UTF-8 encoded form of its input, but interprets certain illegal octet sequences as characters.
Description
Attack Execution Flow
Step 1
Explore[Survey the application for user-controllable inputs] Using a browser or an automated tool, an attacker follows all public links and actions on a web site. They record all the links, the forms, the resources accessed and all other potential entry-points for the web 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.
[Survey the application for user-controllable inputs] Utilizzando un browser o uno strumento automatizzato, un attaccante segue tutti i link pubblici e le azioni su un sito web. Registrano tutti i link, i moduli, le risorse accessate e tutti gli altri potenziali punti di ingresso per l'applicazione web.
Utilizza uno strumento di spidering per seguire e registrare tutti i link e analizzare le pagine web per trovare 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 web e analizzare come è costruito. Sono disponibili numerosi plugin per browser che facilitano l'analisi o automatizzano la scoperta.
Attack Techniques
-
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.
-
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 un browser per esplorare manualmente il sito web e analizzare come è strutturato. Sono disponibili numerosi plugin per browser che facilitano l'analisi o automatizzano la scoperta.
-
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application.IT: Utilizza un browser per esplorare manualmente il sito web e analizzare come è strutturato. Sono disponibili numerosi plugin per browser che facilitano l'analisi o automatizzano la scoperta.
Step 2
Experiment[Probe entry points to locate vulnerabilities] The attacker uses the entry points gathered in the 'Explore' phase as a target list and injects various UTF-8 encoded payloads to determine if an entry point actually represents a vulnerability with insufficient validation logic and to characterize the extent to which the vulnerability can be exploited.
Try to use UTF-8 encoding of content in Scripts in order to bypass validation routines.
Try to use UTF-8 encoding of content in HTML in order to bypass validation routines.
Try to use UTF-8 encoding of content in CSS in order to bypass validation routines.
Sperimentazione
[Individuazione dei punti di ingresso per individuare vulnerabilità] L'attaccante utilizza i punti di ingresso raccolti nella fase "Esplora" come lista di obiettivi e inietta payloads codificati in UTF-8 di vario tipo per determinare se un punto di ingresso rappresenta effettivamente una vulnerabilità con logica di convalida insufficiente e per caratterizzare l'estensione della vulnerabilità sfruttabile.
Provare a utilizzare la codifica UTF-8 del contenuto negli Script per bypassare le routine di convalida.
Provare a utilizzare la codifica UTF-8 del contenuto in HTML per bypassare le routine di convalida.
Provare a utilizzare la codifica UTF-8 del contenuto in CSS per bypassare le routine di convalida.
Attack Techniques
-
Try to use UTF-8 encoding of content in Scripts in order to bypass validation routines.
-
Try to use UTF-8 encoding of content in HTML in order to bypass validation routines.IT: Provare a utilizzare la codifica UTF-8 del contenuto negli Script al fine di aggirare le routine di convalida.
-
Try to use UTF-8 encoding of content in CSS in order to bypass validation routines.IT: Provare a utilizzare la codifica UTF-8 del contenuto negli Script al fine di aggirare le routine di convalida.