Red Hot Cyber
Condividi la tua difesa. Incoraggia l'eccellenza. La vera forza della cybersecurity risiede nell'effetto moltiplicatore della conoscenza.
Cerca
Fortinet 970x120px
TM RedHotCyber 320x100 042514
Scopriamo le injection spiegate in modo semplice

Scopriamo le injection spiegate in modo semplice

Davide Cavallini : 22 Agosto 2022 08:00

Autore: Davide Cavallini.

Buongiorno a tutti. Sono Davide Cavallini, sviluppatore Web e Penetration Tester.

Oggi vi parlerò di injections. Ce ne sono di vari tipi, ma che cosa significa concettualmente fare un injection?


Rhc Conference Sponsor Program 2

Sponsorizza la prossima Red Hot Cyber Conference!
Il giorno Lunedì 18 maggio e martedì 19 maggio 2026 9 maggio 2026, presso il teatro Italia di Roma (a due passi dalla stazione termini e dalla metro B di Piazza Bologna), si terrà la V edizione della la RHC Conference
Si tratta dell’appuntamento annuale gratuito, creato dalla community di RHC, per far accrescere l’interesse verso le tecnologie digitali, l’innovazione digitale e la consapevolezza del rischio informatico. 
Se sei interessato a sponsorizzare l'evento e a rendere la tua azienda protagonista del più grande evento della Cybersecurity Italiana, non perdere questa opportunità. E ricorda che assieme alla sponsorizzazione della conferenza, incluso nel prezzo, avrai un pacchetto di Branding sul sito di Red Hot Cyber composto da Banner più un numero di articoli che saranno ospitati all'interno del nostro portale. 
Quindi cosa stai aspettando? Scrivici subito a [email protected] per maggiori informazioni e per accedere al programma sponsor e al media Kit di Red Hot Cyber.


Supporta Red Hot Cyber attraverso: 

  1. L'acquisto del fumetto sul Cybersecurity Awareness
  2. Ascoltando i nostri Podcast
  3. Seguendo RHC su WhatsApp
  4. Seguendo RHC su Telegram
  5. Scarica gratuitamente “Byte The Silence”, il fumetto sul Cyberbullismo di Red Hot Cyber

Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì.

Ci ho pensato, e credo di avere una risposta “universale”.

le injection spiegate in modo semplice

Prendiamo un esempio semplice. Abbiamo una richiesta da fare al comune, per ottenere un certificato.

Il modulo per la richiesta è questo:

Il sottoscritto __________________________ richiede il certificato di residenza al comune di Casaccio.

Normalmente, il modulo andrebbe compilato scrivendo il proprio nome nell’apposito spazio.

Il nome stesso, in gergo informatico, viene definito “parametro”, in quanto è appunto un parametro variabile che va a variare la richiesta in base alle nostre esigenze.

Inserendo come parametro il nome “Davide” andremo a richiedere all’ufficio il certificato di Davide.

Ma se il parametro stesso andasse ad alterare la struttura della richiesta?

Proviamo a scrivere nello spazio vuoto la seguente frase evidenziata:

Il sottoscritto Antonio assieme con il sottoscritto Davide richiede il certificato di residenza al comune di Casaccio

A questo punto il comune, vedendosi recapitare questa richiesta, e presupponendo di avere un impiegato senza capacità di ragionamento, come del resto (non) hanno i computer, ci consegnerebbe due documenti, sia quello di Antonio che di Davide.

Lo spazio da compilare non filtrato, in questo caso dall’impiegato, si rivelerebbe così una vulnerabilità a facili richieste che non ci spetterebbero. 

La stessa frase  “Antonio assieme con” verrebbe definita in lingua “informatica” come “Payload”.

Guardiamo il tutto in chiave database

La stessa cosa può accadere nei database, ma rimaniamo ancora nel mondo astratto. Se avessimo un database che va a pescare gli indirizzi di un utente in una tabella, in base all’id, passato come parametro, la richiesta sarà di questo tipo:

PRENDI IL DATO DELL’UTENTE DALLA TABELLA “UTENTI” DOVE L’ID E’ UGUALE AL PARAMETRO ID APPENA PASSATO

Se il parametro ID fosse “1”, verrebbero estratti dalla tabella i dati dell’utente con ID 1.

Ma se modificassimo l’id che passiamo alla richiesta in questo modo?

PRENDI IL DATO DELL’UTENTE DALLA TABELLA “UTENTI” DOVE L’ID E’ UGUALE A QUALSIASI ID

In questo caso la pagina potrebbe mostrarci i dati di tutti gli utenti contenuti all’interno del database.

In una situazione reale, la richiesta Sql potrebbe essere :

select * from users where id=$_GET[‘id’];

Finchè il parametro $_GET[‘id’] è uguale a un numero, non c’è alcun problema, perchè la query sarebe la seguente: Nell’esempio passeremo : $_GET[‘id’] = 1

SELECT * FROM `users` WHERE id=1;

Ma se $_GET[‘id’] fosse uguale a id (condizione sempre vera)?  In questo caso avremmo indietro tutti i dati degli utenti

Infatti scrivendo la query:

SELECT * FROM `users` WHERE id=id;

ottrerremo indietro tutti i risultati degli utenti.

A parte gli utenti…

A questo punto sembrerebbe che a parte gli utenti non potremmo ottenere altri dati dal database, ma NON E’ COSI’.

Ci sono altri comandi SQL che infatti possono permetterci di estrarre altri dati, sapendo quanti campi vengono estratti dalla tabella sulla quale viene fatta la query originaria.

Un modo semplice per verificare quante colonne si possono estrarre, è fare un “UNION SELECT” provando ad inserire un numero sempre crescente di colonne.

Esempio:

$_GET[‘id’]=1 union select 1 - -
$_GET[‘id’]=1 union select 91827364,91827364 - -
$_GET[‘id’]=1 union select 91827364,91827364,91827364 - -
$_GET[‘id’]=1 union select 91827364,91827364,91827364,91827364 - -
$_GET[‘id’]=1 union select 91827364,91827364,91827364,91827364,91827364 - -

Nel caso la prima select (from users) avesse 5 colonne, una volta arrivati a quest’ultima union select, nella pagina verrà fuori da qualche parte il numero 91827364

A questo punto potremmo ad esempio sostituire il numero 91827364 con la funzione version(), e vedere la versione del database, oppure fare una subselect per vedere dati di altre tabelle, come ad esempio.

1 union select 1,2,3,4,(select password from secret);

OPPURE ANCHE

1 union select 1,2,3,4,(select concat(username,999,password) from secret);

Nei casi più cattivi l’hacker può anche troncare la tabella (cancellarla tutta), inserire e modificare i dati o creare shell remote nel server, dove eseguire codice arbitrario.

Conclusioni

Le injection nei database sono un problema molto serio per le aziende, e sono tuttora molto presenti nei siti web, o in alcuni plugin o temi vulnerabili, ma non sono l’unico tipo di Injection possibile.

Infatti ci sono altri tipi di injection che possono permettere l’esecuzione di comandi remoti, oppure l’inserimento di Javascript o HTML nella pagina.

Le aziende dovrebbero sempre fare molta attenzione quando sviluppano un applicativo web.
E’ importante rivolgersi a programmatori competenti, che validino il codice con strumenti come PHPstan, LARAstan, SonarCube, e altri validatori statici, e che abbiano almeno un minimo di competenza sulla cybersecurity, pertanto è importante conoscere come avvengono gli attacchi informatici per poi poterli evitare.

E’ altrettanto importante far testare gli applicativi in ambito “pentesting” da chi si occupa di Ethical Hacking professionale.

Immagine del sitoDavide Cavallini
Davide Cavallini è un esperto sviluppatore senior specializzato in Laravel e JavaScript, con una notevole esperienza come penetration tester. La sua carriera è caratterizzata da un impegno nell'insegnamento e nella condivisione della sua conoscenza, contribuendo alla formazione di nuovi professionisti nel campo dello sviluppo software e della sicurezza informatica. La sua passione per la tecnologia lo spinge a rimanere sempre aggiornato e a esplorare nuove frontiere dell'informatica.

Lista degli articoli

Articoli in evidenza

Immagine del sito
Quando Google indicizza anche l’inganno! Le reti fantasma scoperte da RHC che penalizzano la SERP
Di Redazione RHC - 03/11/2025

Analisi RHC sulla rete “BHS Links” e sulle infrastrutture globali di Black Hat SEO automatizzato Un’analisi interna di Red Hot Cyber sul proprio dominio ha portato alla luce una rete globale di ...

Immagine del sito
Furto al Louvre: la password “LOUVRE” del sistema di sorveglianza ha messo in crisi il museo
Di Redazione RHC - 02/11/2025

Abbiamo recentemente pubblicato un approfondimento sul “furto del secolo” al Louvre, nel quale sottolineavamo come la sicurezza fisica – accessi, controllo ambientale, vigilanza – sia oggi str...

Immagine del sito
Allarme phishing in Lombardia: usano dati sanitari reali per chiedere pagamenti
Di Redazione RHC - 02/11/2025

Una nuova e insidiosa campagna di phishing sta colpendo i cittadini lombardi. I truffatori inviano e-mail che sembrano provenire da una presunta agenzia di recupero crediti, chiedendo il pagamento di ...

Immagine del sito
Scopri cos’è il ransomware. Tecniche, tattiche e procedure del cybercrime da profitto
Di Massimiliano Brolli - 02/11/2025

Capire davvero cos’è il ransomware non è semplice: tra notizie frammentate e articoli tecnici, chi cerca risposte rischia di perdersi in un mare di informazioni confuse. Questo articolo nasce per ...

Immagine del sito
Scopri il Dark Web: accesso, segreti e link utili della rete onion
Di Redazione RHC - 02/11/2025

Hai sempre pensato che il Dark Web sia frequentato dai criminali informatici? Hai sempre pensato che il Dark Web sia una rete pericolosa e piena di insidie? Oggi vogliamo sfatare questo mito e creare ...