Red Hot Cyber
Condividi la tua difesa. Incoraggia l'eccellenza. La vera forza della cybersecurity risiede nell'effetto moltiplicatore della conoscenza.
Condividi la tua difesa. Incoraggia l'eccellenza.
La vera forza della cybersecurity risiede
nell'effetto moltiplicatore della conoscenza.
LECS 970x120 1
Redhotcyber Banner Sito 320x100px Uscita 101125
Come la Insecure Deserialization Possono Compromettere la tua Applicazione Web

Come la Insecure Deserialization Possono Compromettere la tua Applicazione Web

22 Maggio 2024 08:58

Userei questo inizio: Se questo fosse un software distribuito, sarebbe un incubo.

In questo articolo andremo alla scoperta di una vulnerabilità che ho individuato tempo fa in una webapp, ricreando la vulnerabilità in un laboratorio per capirne meglio il funzionamento, come identificarla e porre rimedio.

Sto parlando di una Insecure Deserialization descritta molto approfonditamente da OWASP ora inserita nel A08:2021-Software and Data Integrity Failures, posizionata alla top delle vulnerabilità 2021.


Cyber Offensive Fundamentale Ethical Hacking 02

Avvio delle iscrizioni al corso Cyber Offensive Fundamentals
Vuoi smettere di guardare tutorial e iniziare a capire davvero come funziona la sicurezza informatica?
La base della sicurezza informatica, al di là di norme e tecnologie, ha sempre un unico obiettivo: fermare gli attacchi dei criminali informatici. Pertanto "Pensa come un attaccante, agisci come un difensore". Ti porteremo nel mondo dell'ethical hacking e del penetration test come nessuno ha mai fatto prima. Per informazioni potete accedere alla pagina del corso oppure contattarci tramite WhatsApp al numero 379 163 8765 oppure scrivendoci alla casella di posta [email protected].


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ì.

Ora vediamo la nostra app vulnerabile che presenta un login e capiamo un attimo come funziona:

Il nostro browser per ogni pagina che visitiamo si ricorderà che siamo loggati. Ma come fa il browser a ricordarsi che avevamo già fatto l’accesso muovendosi tra una pagina all’altra?

Tramite la croce e delizia di tutti gli sviluppatori: il cookie di sessione. Il cookie di sessione ha il compito di ricordare al server per appunto che il browser è loggato passando da una pagina all’altra passandogli appunto il cookie.

Il cookie è un dato che una volta creato, viene salvato da browser a server fino a quando non scade, non viene riavviato il browser o non viene tolto dal client o server (set/unset). Una volta loggati e questo cookie verrà generato e ci accompagnerà ogni richiesta. Il server quando riceverà in ogni chiamata dal browser potrà recuperare le informazioni legate al cookie di sessione per identificati.

Queste informazioni sono poi a cura dello sviluppatore inserire i dati appositi per riconoscerci tramite dati di sessione.

Vediamo il funzionamento

Inseriamo i dati di login (senza remember che spiegheremo dopo)

Dopo il login ci troviamo in un’area riservata, in questo caso limitata.

Vediamo cosa è successo nel dettaglio con Burp.

Una volta che inseriamo le credenziali il server ci risponderà con un Set-cookie PHPSESSID (id di sessione php) che il browser salverà e rinvierà a ogni successiva richiesta.

Possiamo vedere che nella richiesta successiva è stato ricordato dal browser e inserito nella successiva richiesta.

Possiamo vedere questi cookie sul browser attraverso un’estensione del browser tramite Cookie-Editor.

https://cookie-editor.com

Immergiamoci nel profondo del server…

Quando viene generata questa sessione il server crea un file nel percorso di default /var/lib/php/sessions, app poi salverà alcune informazioni che userà nelle future richieste e infatti contiene il nome utente associato al cookie generato.

Quando nel nostro browser abbiamo la sessione rimarrà attiva e il browser riuscirà a riconoscerci finché non chiudiamo e riapriamo il browser, in questo caso è impostato da configurazione che la sessione si perda e dobbiamo loggarci per riacquistare di nuovo un token di autenticazione.

In questo caso possiamo vedere la configurazione nel file di configurazione della sessione nel server.

La vulnerabilità

Questa, come abbiamo detto, non è una web app qualsiasi, è un incubo.

Ora che abbiamo compreso un attimo come funziona il meccanismo di autenticazione tramite cookie e il funzionamento di questi andiamo ad analizzare la vulnerabilità presente nel meccanismo per ricordare al browser che vogliamo rimanere loggati che utilizza la sessione e i cookie del browser.

Infatti lo sviluppatore per agevolare gli utenti e permettere di ricordare il precedente login ha inserito una funzionalità “ricordami”.

Proviamo ora a eseguire il login con il flag e verifichiamo su burp questa volta cosa succede: Possiamo vedere che viene generato un cookie ulteriore “remember” con all’interno uno strano codice…

Possiamo però notare che cookie ha una scadenza molto alta che farà in modo che rimarrà persistente anche alla chiusura del browser.

Raggiungendo direttamente l’area riservata con il cookie che è rimasto nel browser, viene ricreato il token di sessione e il login avviene automaticamente.

L’App quindi ha utilizzato questo cookie permanente per agevolare gli utenti a non dover ogni volta loggarsi. Quindi obiettivo centrato, ma vediamo un attimo lato sicurezza questo meccanismo quanto sicuro è.

Al cuore della vulnerabilità

Se andiamo adesso ad analizzare il cookie vediamo che questo dato è una codifica URI che velocemente andiamo a decodificare (con burp basta selezionarlo)

Ora il dato è poi chiaro e per chi non sapesse si tratta di un oggetto serializzato.

“a:2” indica che siamo presenza di un array di 2 elementi

  • il primo è username, stringa da 8 caratteri (s:8), con valore user, stringa da 4 (s:4)
  • il secondo è admin (s:5) con valore 0 (s:1)

Quello che possiamo intuire è che applicazione prenda il valore username e ci sia qualche meccanismo di autologin. Ora proviamo a cambiare questo username e usiamo “admin”; quindi ricostruiamo l’oggetto serializzato:

Admin in questo caso sarà di 5 caratteri quindi modifichiamo la stringa così

Ora per modificare e re inviare la chiamata, con burp dobbiamo usiamo usare la funzione repeater, selezioniamo la riga, tasto destro e send to Repeater

Quindi quando in alto si illuminerà “Repeater” clicchiamo li.

In questo pannello possiamo modificare la richiesta originale e modificarla come avevamo accennato prima. Quindi selezioniamo la riga URI del token, a destra modifichiamo la stringa decodificate e diamo “apply modify”.

Reinviamo la richiesta tramite il bottone “Send” e vediamo che in questo caso siamo admin

L’incubo sotto forma di codice

A livello di codice la vulnerabilità si trova qui: Una volta accertato che le credenziali sono corrette viene generato l’oggetto serializzato e creato un cookie ricordami, contenente il nome utente “da ricordare”.

In fase di controllo dell’autenticazione, se il cookie ricordami è presente, viene viene prelevato l’utente dal oggetto serializzato e autenticando automaticamente.

(Se non avete notato, nel codice è presente anche un SQLi. Ma questa è un altra storia…)

CONCLUSIONE

È chiaro anche se la funzione ricordami è un metodo difettoso, va assolutamente cambiato.

Abbiamo visto che questo meccanismo permette di passare da un utente all’altro senza autenticazione e quindi l’accesso a funzionalità e dati che non avrebbe accesso.

Inoltre se se questo fosse un software standard e largamente distribuito, pensiamo a una webapp come WordPress, un malintenzionato potrebbe accedere a qualunque sistema provando a inserire degli utenti standard nel token ricordami.

Visto questo, il metodo migliore è quello di utilizzare un token univoco, che viene validato lato backend una volta passato dal browser e non automaticamente creata la sessione sulla base di quello passato.

Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

Manuel Roccon 300x300
Ho iniziato la mia carriera occuparmi nella ricerca e nell’implementazioni di soluzioni in campo ICT e nello sviluppo di applicazioni. Al fine di aggiungere aspetti di sicurezza in questi campi, da alcuni anni ho aggiunto competenze inerenti al ramo offensive security (OSCP), occupandomi anche di analisi di sicurezza e pentest in molte organizzazioni.
Aree di competenza: Ethical Hacking, Bug Hunting, Penetration Testing, Red Teaming, Security Research, Cybersecurity Communication

Articoli in evidenza

Immagine del sitoVulnerabilità
Arriva Chronomaly: un PoC per Linux che promette Privilege Escalation su Kernel a 32 bit
Redazione RHC - 09/01/2026

Una falla di sicurezza è stata individuata all’interno di Linux, la quale può essere sfruttata in un brevissimo lasso di tempo, tant’è che il kernel comincia subito a operare con la memoria precedentemente rilasciata. Un…

Immagine del sitoCultura
9 Gennaio 2007 nasce l’iPhone: Il giorno in cui il futuro è diventato tascabile
Gaia Russo - 09/01/2026

San Francisco: 9 gennaio 2007 L’aria aveva qualcosa di strano, come quando sai che sta per succedere qualcosa ma non sai cosa. Steve Jobs era sul palco del Macworld Conference & Expo, jeans, dolcevita nero,…

Immagine del sitoCyberpolitica
Agcom multa Cloudflare: sanzione da oltre 14 milioni per violazione delle norme antipirateria
Redazione RHC - 09/01/2026

L’Autorità per le garanzie nelle comunicazioni italiana ha inflitto a Cloudflare Inc. una sanzione amministrativa superiore ai 14 milioni di euro per mancato rispetto della normativa italiana contro la pirateria online. Il provvedimento è stato…

Immagine del sitoCybercrime
L’Iran spegne Internet, ma le piazze esplodono: è rivolta aperta
Redazione RHC - 09/01/2026

I manifestanti iraniani hanno gridato e marciato per le strade fino a venerdì mattina, dopo l’appello dell’ex principe in esilio Reza Pahlavi a manifestare, nonostante la teocrazia iraniana abbia isolato il Paese da Internet e…

Immagine del sitoCybercrime
Codici QR dannosi: la nuova frontiera del phishing passa dall’HTML
Redazione RHC - 08/01/2026

Sappiamo che i criminal hacker riescono sempre a sorprenderci, e anche questa volta ci stupiscono per le innovazione e i modi che inventano per poter superare gli ostacoli, come i filtri di antispam. I criminali…