XKCD: Exploit di una mamma

12 anni fa

Sua figlia si chiama ‘Aiuto sono intrappolato in una fabbrica di patenti di guida’.

Il quote si riferisce alla sorella di Robertino che vedremo protagonista nella serie 1337, il cui primo nome potrebbe essere stato cambiato da qualcuno che doveva un messaggio di aiuto dalla fabbrica di patenti in cui era intrappolato (questa interpretazione deriva dal forum di XKCD). La madre è la signora Roberts, di cui non andro’ a spoilerare la professione.

Perchè il nome di Robertino Tabelle ha rotto il database della scuola? Si tratta di un caso eclatante di SQL Injection, attacco ad una applicazione web che sfrutta delle falle di sicurezza tipicamente in form che si trovano in una pagina: in pratica, la scuola ha un database in cui registra i suoi dati, in particolare ha una tabella -la componente fondamentale del database- chiamata ‘Studenti’ in cui sono raccolti tutti i dati degli studenti; ogni studente costituisce una ‘tupla’ o ‘record’.
Cosa è successo?
L’addetto all’inserimento dati ha scritto i dati nel form, che il server ha assemblato nella query (i comandi che si danno per modificare il database):


INSERT INTO Studenti(indirizzo, nome, contatto) VALUES (‘via dei matti,0’, ‘Roberto’); DROP TABLE Studenti;- -’, ‘166/101010’);

Dove è tutto su una riga, la parte evidenziata è il nome di Robertino e ‘- -‘ indica un commento (quindi fa sparire la parte successiva agli occhi dell’interprete come abbiamo visto in questo post).

Bene, sembrerebbe corretto, ma in realtà la query viene interpretata da MySQL (o simili) così


INSERT INTO Studenti(indirizzo, nome, contatto) VALUES (‘via dei matti,0’, ‘Roberto’);

DROP TABLE Studenti;- –


Adesso si vede che in realtà sono due istruzioni, un inserimento e un comando ‘DROP TABLE’ che cancella tutta la tabella ‘Studenti’ dal database.

La soluzione sta nella “sanitizzazione” delle query. Ciò si fa prendendo l’input dell’utente e, invece che passarlo direttamente al database, lo si filtra con qualche metodo (ad esempio una funzione che controlli se sono solo lettere tramite espressioni regolari), disinnescando il pericolo.

Vignetta originale su XKCD.

SQL Injection: un attacco evergreen
SQL Injection: un attacco evergreen
PickMod, un database di ROM approda su Kickstarter
PickMod, un database di ROM approda su Kickstarter
Shellshock - BashBug: quello che dovete sapere
Shellshock - BashBug: quello che dovete sapere
HeartBleed: quello che dovete sapere
HeartBleed: quello che dovete sapere
XKCD: 1337 Parte 5
XKCD: 1337 Parte 5
XKCD: 1337 Parte 4
XKCD: 1337 Parte 4
Facebook Privacy Settings Exploit
Facebook Privacy Settings Exploit

Benvenuto

Continua in modo "Gratuito" Accetta i cookies per continuare a navigare con le pubblicità Informazioni su pubblicità e cookies nella nostra Informativa sulla Privacy
oppure, attiva un Abbonamento l'abbonamento ti permette di navigare senza tracciamenti Hai già un abbonamento? Accedi al tuo profilo

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque tincidunt est est, in vulputate nisi eleifend eu. Pellentesque at auctor mauris, sed vestibulum tortor. Sed ac lectus hendrerit, congue dui quis, rhoncus purus. Morbi vel ultrices ex. Vestibulum nec venenatis magna. Duis quis egestas lorem. Vivamus imperdiet purus sit amet convallis interdum. Vivamus orci erat, porttitor at aliquam et, ultrices ac sapien. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras orci mi, maximus sed suscipit ut, hendrerit ut augue. Duis enim augue, gravida et nisi nec, auctor pellentesque neque. Donec sollicitudin a dui non placerat. Integer eu scelerisque leo. Nulla facilisi. Aliquam in aliquam mauris. Suspendisse potenti. Donec efficitur leo id nunc imperdiet, ut pretium velit interdum. Aliquam eu sem et nisi pretium consequat. Ut at facilisis ex, in sollicitudin justo. Nunc maximus vulputate ipsum, non pharetra turpis luctus in. Suspendisse potenti. Nunc mattis est elit, nec varius risus blandit vestibulum. Proin id diam ac lacus dignissim finibus.