The topic of security and in particular the topic of web security is very much discussed nowadays. Furthermore, in the last decades, the Unicode standard has become the reference point for the management of characters and the encoding associated with them. Unicode, like many other standards, takes advantage of character and string manipulation functions that are vulnerable. Thus, care must be taken when working with these functions. This thesis aims to combine web security with the Unicode standard works toward achieving two main goals. The first one is the analysis of such vulnerabilities. The second one is to provide a tool capable of identifying these vulnerabilities in an automated way within web applications. Therefore, in this thesis, we first analyze different examples of vulnerabilities related to Unicode character transformations. We describe and try to replicate these vulnerabilities in a test environment written with the Flask framework in Python3. Through this analysis, we have realized that some vulnerabilities, nowadays, have been fixed and are no longer exploitable. On the other hand, other vulnerabilities, under certain conditions, are still dangerous and therefore must be handled more carefully by developers and testers. After carrying out this analysis on vulnerabilities related to Unicode transformations, we are going to describe a command-line tool that we have called Toolnicode. This tool, written in Python, allows us to automatically identify the presence of potentially dangerous transformations within web applications. The goal of this tool is, in fact, to help developers and penetration testers while testing their web applications for security issues.

Il tema della sicurezza, specialmente per quanto rigurada il web, è un argomento molto discusso oggigiorno. Inoltre, nelle ultime decadi, lo standard Unicode è diventato il punto di riferimento per quanto riguarda la gestione dei caratteri e degli encoding ad essi associati. Come tutti gli standard e le tecnologie informatiche, anche Unicode, con le sue operazioni e funzioni usate per manipolare i caratteri e le stringhe, porta dietro con sé delle vulnerabilità. L’obbiettivo di questa tesi è duplice ed è sia quello di analizzare queste vulnerabilità che quello di fornire uno strumento in grado di individuarle all’interno di applicazioni web. In questa tesi andremo ad analizzare diversi tipi di vulnerabilità legate alle trasformazioni di caratteri Unicode; le descriveremo e le testeremo in un ambiente scritto con il framework Flask in Python3. Con questo tipo di analisi ci siamo accorti che alcune vulnerabilità, ad oggi, sono state sistemate e non sono più sfruttabili, mentre altre in determinate situazioni risultano ancora pericolose e perciò devono essere soggette a maggior attenzione da parte di sviluppatori e tester. Dopo aver eseguito questa analisi sulle vulnerabilità relative a trasformazioni Unicode, andremo a descrivere un tool da riga di comando che chiameremo Toolnicode. Questo tool, scritto in Python, ci permetterà di individuare in maniera automatizzata la presenza di trasformazioni, potenzialmente pericolose, allinterno di applicazioni web. L’obbiettivo di questo tool è quello di aiutare gli sviluppatori e i penetration tester nel testare le proprie applicazioni web per individuare problemi legati alla sicurezza.

Advanced bypass techniques leveraging on Unicode transformations

Gasperini, Marco
2020/2021

Abstract

The topic of security and in particular the topic of web security is very much discussed nowadays. Furthermore, in the last decades, the Unicode standard has become the reference point for the management of characters and the encoding associated with them. Unicode, like many other standards, takes advantage of character and string manipulation functions that are vulnerable. Thus, care must be taken when working with these functions. This thesis aims to combine web security with the Unicode standard works toward achieving two main goals. The first one is the analysis of such vulnerabilities. The second one is to provide a tool capable of identifying these vulnerabilities in an automated way within web applications. Therefore, in this thesis, we first analyze different examples of vulnerabilities related to Unicode character transformations. We describe and try to replicate these vulnerabilities in a test environment written with the Flask framework in Python3. Through this analysis, we have realized that some vulnerabilities, nowadays, have been fixed and are no longer exploitable. On the other hand, other vulnerabilities, under certain conditions, are still dangerous and therefore must be handled more carefully by developers and testers. After carrying out this analysis on vulnerabilities related to Unicode transformations, we are going to describe a command-line tool that we have called Toolnicode. This tool, written in Python, allows us to automatically identify the presence of potentially dangerous transformations within web applications. The goal of this tool is, in fact, to help developers and penetration testers while testing their web applications for security issues.
VALENZA, ANDREA
ING - Scuola di Ingegneria Industriale e dell'Informazione
7-ott-2021
2020/2021
Il tema della sicurezza, specialmente per quanto rigurada il web, è un argomento molto discusso oggigiorno. Inoltre, nelle ultime decadi, lo standard Unicode è diventato il punto di riferimento per quanto riguarda la gestione dei caratteri e degli encoding ad essi associati. Come tutti gli standard e le tecnologie informatiche, anche Unicode, con le sue operazioni e funzioni usate per manipolare i caratteri e le stringhe, porta dietro con sé delle vulnerabilità. L’obbiettivo di questa tesi è duplice ed è sia quello di analizzare queste vulnerabilità che quello di fornire uno strumento in grado di individuarle all’interno di applicazioni web. In questa tesi andremo ad analizzare diversi tipi di vulnerabilità legate alle trasformazioni di caratteri Unicode; le descriveremo e le testeremo in un ambiente scritto con il framework Flask in Python3. Con questo tipo di analisi ci siamo accorti che alcune vulnerabilità, ad oggi, sono state sistemate e non sono più sfruttabili, mentre altre in determinate situazioni risultano ancora pericolose e perciò devono essere soggette a maggior attenzione da parte di sviluppatori e tester. Dopo aver eseguito questa analisi sulle vulnerabilità relative a trasformazioni Unicode, andremo a descrivere un tool da riga di comando che chiameremo Toolnicode. Questo tool, scritto in Python, ci permetterà di individuare in maniera automatizzata la presenza di trasformazioni, potenzialmente pericolose, allinterno di applicazioni web. L’obbiettivo di questo tool è quello di aiutare gli sviluppatori e i penetration tester nel testare le proprie applicazioni web per individuare problemi legati alla sicurezza.
File allegati
File Dimensione Formato  
2021_09_Gasperini.pdf

solo utenti autorizzati dal 15/09/2022

Descrizione: Tesi
Dimensione 1.53 MB
Formato Adobe PDF
1.53 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/179590