E 'possibile bypassare la codifica di riferimento dei caratteri HTML per iniettare SQL in questo contesto?

1

Stavo curiosando con la pagina "reimpostare la password" di un sito Web (su di esso sono consentiti test di sicurezza e ricerca degli errori).

Quando inserisci il tuo indirizzo email, usa la codifica HTML di riferimento dei caratteri per codificare il tuo indirizzo. Ad esempio:

Email: [email protected] > > example@example.com

È possibile iniettare comandi SQL anche se è stato codificato in questo modo?

Grazie in anticipo

    
posta Mico 05.05.2015 - 15:03
fonte

1 risposta

1

L'iniezione SQL funziona saltando fuori dalla parte "valore" della sintassi SQL nella parte "comando".

I valori di stringa (come nel tuo esempio) sono racchiusi tra virgolette - per uscire devi includere una citazione simile nel tuo valore (come ' WHERE 1; DROP TABLE ... o qualunque sia la sintassi effettiva). La codifica HTML non consente virgolette, quindi non funzionerà.

Mi sono chiesto un po 'sui campi non quotati - ad es. se si aspetta un numero (da un menu a discesa) ma gli dai un comando (come 5 WHERE 1; DROP TABLE ... o qualsiasi altra cosa). Tuttavia, non sono a conoscenza di istruzioni SQL a singola parola, ovvero non è possibile fare nulla senza qualcosa per separare i token (ad esempio uno spazio o punteggiatura ( ecc.). Quindi, anche se guardi un campo non quotato come un numero, potresti rovinare l'affermazione e produrre un errore, ma in realtà non eseguire nulla.

    
risposta data 05.05.2015 - 15:21
fonte

Leggi altre domande sui tag