Web14: Problemi di sicurezza nel protocollo HTTP

Web14: Problemi di sicurezza nel protocollo HTTP

Questo articolo presenta alcuni problemi di sicurezza nel protocollo HTTP , sollevati in due documenti RFC 7230 e RFC 7231. Gli esempi nell'articolo relativi a errori specifici sono referenziati da OWASP.

1. Rischi derivanti da fattori intermedi

HTTP consente l'utilizzo di intermediari per rispondere alle richieste attraverso una serie di connessioni. Esistono tre elementi intermediari comuni: proxy, gateway e tunnel.

Una richiesta o una risposta dovrà passare attraverso i punti A, B e C. Possono accedere alle informazioni sensibili trasmesse, come le informazioni personali di utenti o organizzazioni. La mancanza di attenzione prestata alla sicurezza e alla privacy da parte degli intermediari può portare ad un’ampia gamma di potenziali attacchi.

Gli sviluppatori e gli sviluppatori di sistema dovrebbero considerare i fattori di privacy e sicurezza durante il processo di progettazione, codifica e distribuzione del sistema.

Gli utenti devono essere consapevoli dei pericoli derivanti dall'utilizzo di proxy o gateway non attendibili.

2. Suddivisione della risposta

La suddivisione della risposta (nota anche come CRLF injection) è una tecnica di exploit web popolare. L'attaccante invia dati codificati, in alcuni parametri della richiesta, che vengono poi decodificati e ripetuti in un determinato campo dell'intestazione della risposta.

Se questi dati sono un simbolo che rappresenta la fine della risposta e viene avviata una risposta successiva, la risposta originale verrà divisa in due e il contenuto della seconda risposta sarà controllato dall'aggressore. L'aggressore può quindi effettuare un'altra richiesta all'interno della stessa connessione persistente e ingannare il destinatario (inclusi gli intermediari) facendogli credere che questa seconda risposta sia in risposta alla seconda richiesta.

3. Richiesta di contrabbando

Il contrabbando di richieste è una tecnica che sfrutta le differenze nell'elaborazione delle richieste da parte di diversi tipi di server per nascondere richieste apparentemente innocue aggiunte alla richiesta originale.

Consideriamo il seguente esempio:

Supponiamo che una richiesta POST contenga due campi "Content-length" nell'intestazione con due valori diversi. Alcuni server negheranno questa richiesta (IIS e Apache), ma altri no. Ad esempio, SunONE W/S 6.1 utilizza per primo il campo Lunghezza contenuto, mentre sunONE Proxy 3.6 utilizza per secondo il campo Lunghezza contenuto.

Supponendo che SITE sia il DNS di SunONE W/S, situato dietro un proxy SunONE, è presente un file veleno.html situato su SunONE W/S. Ecco come sfruttare il suggerimento di richiesta HTTP basato su incoerenze nell'elaborazione tra due server:

Web14: Problemi di sicurezza nel protocollo HTTP

[Nota che ogni riga termina con un CRLF (“”), tranne la riga 10]

Consideriamo cosa succede quando una richiesta viene inviata a W/S tramite il server Proxy. Innanzitutto, il proxy analizzerà la richiesta dalle righe da 1 a 7 (blu) e incontrerà due campi Content-Length. Come accennato in precedenza, ignorerà il primo campo e comprenderà che il corpo della richiesta è lungo 44 byte. Pertanto, tratta i dati dalle righe da 8 a 10 come il primo corpo della richiesta (dalle righe da 8 a 10, i dati sono lunghi esattamente 44 byte). Il proxy analizzerà quindi le righe da 11 a 14 (in rosso) come seconda richiesta del client.

Ora vediamo come W/S interpreta i dati sopra, così come vengono inoltrati dal proxy. A differenza dei proxy, W/S utilizzerà il primo campo Content-Length e lo interpreterà come segue: la prima richiesta non ha corpo e la seconda richiesta inizia dalla riga 8 (nota che W/S analizzerà dalla riga 11 in poi come il valore del campo Bla).

Successivamente, vediamo come viene restituita la risposta al client. La richiesta che W/S capisce è “POST /foobar.html” (dalla riga 1) e “GET /poison.html” (dalla riga 8), quindi invierà al client 2 risposte con il contenuto della pagina foobar. html e veleno.html. Il proxy capisce che queste 2 risposte corrispondono a 2 richieste: "POST /foobar.html" (dalla riga 1) e "GET /page_to_poison.html" (riga 11). Il proxy memorizzerà nella cache il contenuto della pagina veleno.html corrispondente all'URL “page_to_poison.html” (cache Poison). Da lì, quando il client richiede "page_to_poison.html" riceverà il contenuto della pagina Poison.html.

4. Attacco basato sul percorso del file

I server Web utilizzano spesso il file system locale per gestire la mappatura dei nomi di file negli URI sulle risorse effettive sul server. La maggior parte dei file system non è progettata per proteggere da percorsi di file dannosi. Pertanto, il server deve evitare di accedere a file di sistema importanti.

Ad esempio, UNIX, Microsoft Windows e molti altri sistemi operativi utilizzano ".." come elemento di percorso per rappresentare una directory un livello sopra il file/directory corrente. Senza un adeguato controllo e autorizzazione dell'input, è possibile accedere a file/cartelle sensibili del sistema inserendo percorsi che puntano a tali file/cartelle.

5. Tipi di attacchi: Command Injection, Code Injection, Query Injection

[I server Web spesso utilizzano parametri nell'URI come input per eseguire comandi di sistema e query di database. Tuttavia, i dati ricevuti nella richiesta non sono sempre attendibili. Un utente malintenzionato può creare e modificare componenti nella richiesta (come metodi, campi nell'intestazione, corpo...), per eseguire comandi di sistema, interrogare il database...

Ad esempio, SQL Injection è un attacco comune in cui il server web riceve parametri nell'URI che fanno parte della query SQL. Pertanto, un utente malintenzionato può ingannare il server Web per eseguire query SQL illegali, al fine di rubare o sabotare il database.
In generale, i dati conferiti dagli utenti non devono essere utilizzati direttamente per eseguire operazioni sul server. Questi dati devono passare attraverso filtri che definiscono cosa è valido e cosa non è valido, eliminando così i dati indesiderati.

6. Rivelazione di informazioni personali

I client spesso contengono molte informazioni personali, comprese le informazioni fornite dall'utente per interagire con il server (come nome utente, password, posizione, indirizzo e-mail, ecc.) e informazioni sulle attività di navigazione Web dell'utente (cronologia, segnalibri, eccetera.). Durante l'implementazione, è necessario prestare attenzione a prevenire i punti che possono rivelare queste informazioni private.

7. Rivelazione di informazioni sensibili nell'URI

Gli URI, per impostazione predefinita, sono pensati per essere condivisi con tutti gli utenti e non è garantita la loro sicurezza. Gli URI vengono spesso visualizzati nel codice sorgente del sito Web e vengono archiviati nei segnalibri senza meccanismi di protezione. Pertanto, non sarà sicuro se l'URI contiene informazioni sensibili, informazioni personali, ecc.

Evitare di utilizzare il metodo GET per inviare informazioni personali al server, poiché verranno visualizzate nell'URI. Utilizzare invece il metodo POST.

8. Rivelazione delle informazioni sul software utilizzato

I campi User-Agent, Via, Server nell'intestazione solitamente forniscono informazioni sul software utilizzato dal mittente. In teoria, ciò consente agli aggressori di sfruttare più facilmente le vulnerabilità note di questi software.


Web13: tecnica di hacking Session Hijacking

Web13: tecnica di hacking Session Hijacking

In questo articolo, LuckyTemplates ti invita ad apprendere la tecnica di hacking Session Hijacking.

Web14: Problemi di sicurezza nel protocollo HTTP

Web14: Problemi di sicurezza nel protocollo HTTP

Ti invitiamo a unirti a LuckyTemplates per conoscere i problemi di sicurezza nel protocollo HTTP.

Scarica il bellissimo pacchetto di sfondi Huawei Mate 40 (risoluzione 2K)

Scarica il bellissimo pacchetto di sfondi Huawei Mate 40 (risoluzione 2K)

Il pacchetto di 17 sfondi predefiniti della serie Huawei Mate 40 può essere scaricato gratuitamente.

Come attivare/disattivare lopzione Mostra badge sui pulsanti della barra delle applicazioni in Windows 10

Come attivare/disattivare lopzione Mostra badge sui pulsanti della barra delle applicazioni in Windows 10

Per impostazione predefinita, se utilizzi Windows 10 V1703 o versioni successive, vedrai i simboli sui pulsanti della barra delle applicazioni. In questo articolo, Quantrimang.com ti mostrerà come attivare/disattivare l'opzione Mostra badge sui pulsanti della barra delle applicazioni in base alle tue esigenze.

Concetto di standard UEFI nei computer

Concetto di standard UEFI nei computer

UEFI (Unified Extensible Firmware Interface) è stato sviluppato da Intel per risolvere i punti deboli del BIOS e sostituirà gradualmente il vecchio e obsoleto standard BIOS. Ovviamente sarà molto più potente del BIOS e davvero utile per attività come l'overclocking.

Winaero Tweaker, uno strumento per personalizzare completamente Windows 10 Spring Creators

Winaero Tweaker, uno strumento per personalizzare completamente Windows 10 Spring Creators

Winaero ha appena lanciato ufficialmente una nuova versione di Winaero Tweaker, uno strumento per aiutare i singoli utenti a massimizzare Windows. In particolare, questo aggiornamento supporta molte opzioni di impostazione nella personalizzazione dell'ultima versione di Windows 10 Spring Creators.

Come attivare linput Telex vietnamita predefinito in Windows 10 maggio 2019

Come attivare linput Telex vietnamita predefinito in Windows 10 maggio 2019

Windows 10 maggio 2019 viene fornito con la tastiera vietnamita Telex predefinita, che consente di digitare vietnamita su Windows senza la necessità di installare software aggiuntivo di terze parti. Tuttavia, non tutti gli utenti hanno questo ingresso Telex abilitato. Se non hai trovato le percussioni Telex su Windows 10 (1903), segui le istruzioni seguenti per attivarle.

La barra delle applicazioni su Windows 10 non funziona, ecco come risolverlo

La barra delle applicazioni su Windows 10 non funziona, ecco come risolverlo

L'errore della barra delle applicazioni bloccata, che non risponde o non funziona è uno degli errori comuni che molti utenti di Windows 10 riscontrano spesso. Per correggere questo errore, fare riferimento all'articolo seguente di LuckyTemplates.

7 migliori strumenti per la risoluzione dei problemi di rete per salvare la tua rete domestica

7 migliori strumenti per la risoluzione dei problemi di rete per salvare la tua rete domestica

Ti capita spesso di riscontrare problemi di rete? Non poter accedere? Ti senti frustrato e vuoi connetterti il ​​prima possibile? Questo articolo ti aiuterà a diagnosticare i problemi di rete e offre strumenti Windows integrati e alcune utilità di terze parti per risolvere i problemi di rete.

In che modo il tempo influisce sul tuo PC?

In che modo il tempo influisce sul tuo PC?

Esistono molti fattori interni ed esterni che possono influenzare le prestazioni di un computer, incluso il tempo.