Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

1. Troncare il contenuto della query

Nel caso in cui desideri ignorare gli script nella query. Ad esempio, per l'elaborazione seguente, la query richiede la condizione active=1 ma possiamo commentare (--, -- -, -+, #, /*, /**/, // , ;%00…) e ignoralo. Durante l'estrazione, spesso non sappiamo cosa fa il contenuto rimanente della query, quindi l'utilizzo dei commenti in questo caso è molto efficace.

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

Dopo aver commentato, la nostra query diventa:

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

2. Ignora il filtraggio delle parole chiave

UN. Commenti in linea

I commenti in linea vengono utilizzati in modo molto efficace per aggirare il filtro degli spazi bianchi. È possibile utilizzare i seguenti caratteri per ignorare il filtro degli spazi bianchi: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). Per esempio:

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

Oppure ignora il filtraggio delle parole chiave (disponibile con MySql). Nell'esempio seguente, le parole chiave union e password sono nella lista nera, quindi sono state bloccate. Possiamo aggirarlo:

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

B. Sostituisci le parole chiave

Quando sfruttiamo l'SQL injection, utilizziamo spesso parole chiave come: union, select, information_schema... In molti casi, i programmatori semplicemente sostituiscono quelle parole chiave:

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

Possiamo facilmente vedere che manca il codice di elaborazione di cui sopra. Se si tratta semplicemente di una corrispondenza di pattern, il bypass è estremamente semplice. Applichiamo la distinzione tra maiuscole e minuscole, dove le lettere maiuscole e minuscole vengono interpretate in modo diverso.

Ora invece di usare la parola chiave:

select, union…

Noi useremo:

SeLEcT, UniOn…

La base di questo bypass è che i sistemi di gestione dei database non distinguono tra case e parole chiave case.

In alcuni casi, l'applicazione web filtrerà tutte o parte di alcune parole chiave (unione, selezione...). Aggireremo come segue:

id=1+uniunionon+SeLselectecT+1,2,3-- -

Dopo che l'unione e la selezione sono state filtrate dall'applicazione web, ci verrà lasciata la query corretta come segue:

id=1+union+SeLecT+1,2,3-- -

C. Codifica dei caratteri

Possiamo bypassare il blocco WAF (Web Application Firewall) delle parole chiave codificandole. Molte applicazioni WAF decodificheranno la query solo una volta e filtreranno le parole chiave nella lista nera, quindi codificheremo la richiesta due volte in modo che in questo caso possa essere ignorata.

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

3. Bypass blocca le virgolette singole e doppie

- Diamo un'occhiata a un esempio prima di conoscere nello specifico questo bypass.

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

In questo scenario, nel database è presente una tabella denominata Users. Il compito successivo è conoscere il nome della colonna nella tabella per ottenere le sue informazioni. Come nella query precedente, utilizziamo la condizione: table_name='users'. Ma se sia le virgolette singole (') che le virgolette doppie (") sono bloccate da WAF, non possiamo più utilizzare 'utenti' o "utenti". Quindi, come risolvere questo problema? Il sistema di database integrato ci fornisce una funzione che risolve molto bene questo problema, che è la funzione CHAR() (per Oracle è CHR()). Ad esempio, nella query precedente la ignoreremo:

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggioWeb5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

I programmatori PHP hanno molta familiarità con la funzione addlashes(). La funzione addlashes() ha l'effetto di aggiungere prima di caratteri speciali come virgolette singole ('), virgolette doppie ("), barra rovesciata (\), carattere NUL (byte nullo) "\" per aiutare il sistema di gestione del database. Esiste nessuna difficoltà e confusione durante la gestione di stringhe contenenti questi caratteri? Pertanto, quando vogliamo inserire nella query secondo lo script: name='someName' o '1'='1'-- I risultati non sono più quelli che ci aspettavamo.

Tuttavia, esiste una tecnica per ignorare la funzione addlashes() per inserire caratteri di virgolette singole ('). Questa tecnica è pubblica da molto tempo e l'implementazione di questa tecnica è piuttosto difficile perché è legata allo stile di codifica applicato al sito web.

4. Ignorare l'errore "mix illegale di regole di confronto per l'operazione UNION"

In alcuni sistemi gestionali (comunemente presenti in MySql), quando database e tabelle sono stati impostati in collation, quando si utilizza la parola chiave UNION, verrà segnalato l'errore "illegal mix of collation for operazione UNION". L'impostazione delle regole di confronto può essere dovuta all'intenzione del progettista del database o all'impostazione predefinita di MySql. In caso di utilizzo dell'unione, dobbiamo garantire che la condizione di selezione del valore in ciascun campo debba avere il tipo di codice corrispondente definito. A mio parere, questo errore è abbastanza comune, soprattutto per i CMS che eseguono Apache MySql. Le persone possono saperne di più su: http://bugs.mysql.com/bug.php?id=57926.
In questo caso possiamo utilizzare metodi per convertire nel tipo di codifica appropriato.

Ad esempio nel seguente caso:

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

Nella query precedente, se la colonna1 ha le regole di confronto impostate su Unicode-UTF8 o _latin1, ad esempio, ciò che viene selezionato da colonna2 dovrà essere convertito nel codice corrispondente. Possiamo forzare lo stile come segue:

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

Vediamo uno svantaggio in questo metodo di bypass: dobbiamo sapere che il codice raccolto è _latin1. Un modo migliore per aggirarlo, secondo me, è utilizzare le funzioni di codifica e decodifica esadecimale e non esadecimale.

Web5: SQL injection - Alcune tecniche per aggirare i meccanismi di filtraggio

Esistono molte altre funzioni che possono essere utilizzate al posto di hex e unhex.


6 cose che puoi fare con lapp Meteo su Windows 10

6 cose che puoi fare con lapp Meteo su Windows 10

L'app Meteo su Windows 10 è integrata nel sistema operativo e fornisce informazioni dettagliate relative al meteo, indipendentemente da dove ti trovi. La semplice interfaccia dell'app fornisce dati meteo e previsioni passati, presenti e futuri, nonché notizie meteorologiche internazionali.

Come visualizzare la temperatura in °C o °F nellapp Meteo su Windows 10

Come visualizzare la temperatura in °C o °F nellapp Meteo su Windows 10

Le previsioni possono essere facilmente impostate per mostrare qualsiasi città o luogo desiderato, da qualsiasi parte del mondo, e visualizzare le temperature in gradi Celsius (°C). Questa impostazione può essere regolata nell'app Meteo su Windows 10 e nel widget "Notizie e interessi" sulla barra delle applicazioni.

I migliori siti Web per apprendere abilità di hacking

I migliori siti Web per apprendere abilità di hacking

Quando si parla di hacker, forse il primo stereotipo che immaginiamo è quello dello studente universitario o dell’esperto nel campo dell’informatica.

Come creare e utilizzare checkpoint Hyper-V in Windows 10

Come creare e utilizzare checkpoint Hyper-V in Windows 10

Checkpoint è una potente funzionalità di Hyper-V che semplifica l'annullamento di eventuali modifiche su una macchina virtuale.

3 strumenti per leggere gratuitamente le estensioni dei file DMG su PC Windows

3 strumenti per leggere gratuitamente le estensioni dei file DMG su PC Windows

Il formato file immagine DMG è il formato di archiviazione file più popolare utilizzato per distribuire software su Mac OS X. Questa estensione file non può essere letta sui computer PC Windows. Tuttavia, se desideri leggere questa estensione di file su un PC Windows, puoi chiedere il supporto di un'applicazione di terze parti.

Come aggiungere/rimuovere Accesso rapido nel riquadro di navigazione Esplora file su Windows 10

Come aggiungere/rimuovere Accesso rapido nel riquadro di navigazione Esplora file su Windows 10

L'accesso rapido è il percorso più breve per raggiungere i file su cui stai lavorando e le cartelle che usi spesso. Queste sono le cartelle a cui accedi di frequente e i file recenti.

Recensione Opera VPN: semplice, veloce e gratuita

Recensione Opera VPN: semplice, veloce e gratuita

Forse hai sentito che il browser web Opera viene fornito con una VPN gratuita, o forse sei già un amante di Opera e vuoi semplicemente sapere come funziona il loro servizio VPN.

Come e perché dovresti disabilitare le reti Wi-Fi a 2,4 GHz?

Come e perché dovresti disabilitare le reti Wi-Fi a 2,4 GHz?

Dovresti considerare di disattivare la vecchia banda da 2,4 GHz sulla tua rete Wi-Fi domestica e di utilizzare la nuova banda da 5 GHz, più veloce e meno "affollata". Scopriamolo attraverso il seguente articolo.

Come abilitare la funzionalità sandbox su Windows Defender

Come abilitare la funzionalità sandbox su Windows Defender

Il motore antivirus integrato di Microsoft Windows Defender è diventato il primo software antivirus in grado di funzionare in un ambiente sandbox.

Cosè il ransomware Screen Locker? Come rimuovere?

Cosè il ransomware Screen Locker? Come rimuovere?

Screen Locker Ransomware è un tipo di ransomware che prende il controllo dello schermo e ti impedisce di utilizzare il tuo dispositivo. Questo tipo di ransomware è in aumento e può essere molto difficile da rimuovere senza informazioni sufficienti al riguardo.