Gen 25, 2024 Approfondimenti, RSS, Vulnerabilità
Creare bug è un gioco da ragazzi, ma le cose si complicano notevolmente quando si tratta di trovarli: le vulnerabilità non sono sempre visibili a occhio nel codice, e spesso dipendono da un’implementazione errata della logica di esecuzione.
Per essere dei bravi “cacciatori di bug” servono anni di esperienza e la capacità di andare al di là delle interazioni più immediate col software, analizzando più scenari possibili per individuare tutte la maggior parte delle vulnerabilità.
Imad Husanovic, ricercatore di sicurezza conosciuto sul web col nome utente dead0verflow, ha condiviso in un libro di prossima uscita i metodi che utilizza durante i programmi di bug bounty per individuare anche le vulnerabilità più difficili da riprodurre. In un post su Medium il ricercatore ha anticipato una parte dei contenuti del libro spiegando come trovarei bug di Cross-Site Request Forgery (CSRF).
La Cross-Site Request Forgery (CSRF) è una vulnerabilità a cui sono esposti i siti web dinamici che non controllano se la richiesta fatta da un client sia stata fatta intenzionalmente o meno. Gli attaccanti usano questo bug per eseguire richieste non autorizzate sfruttando la sessione di un utente autenticato.
Husanovic spiega che, per sfruttare la vulnerabilità, bisogna navigare sul sito target, aprire la console di sviluppo e navigare sulla tab “Network” dove vengono mostrate tutte le richieste HTTP fatte dal sito.
Per capire se un sito è vulnerabile basta selezionare una delle richieste effettuate, fare tasto destro su di essa e poi selezionare “Copy as fetch”; a questo punto si naviga su un altro sito web, si apre la console e questa volta si naviga sul tab “Console”. Copiando la richiesta qui, modificando la proprietà “mode” in “no-cors” e la “credentials” in “include” e cliccando su invio, si può verificare la presenza di una vulnerabilità: se il browser ritorna un 200 per la richiesta, significa che è andata a buon fine e che quindi il sito soffre di una vulnerabilità CSRF.
Capire se esiste un bug di CSRF è molto semplice: chiunque può seguire questi semplici passaggi, anche chi non ha conoscenze tecniche. Husanovic sottolinea che in uno stesso sito web potrebbero esserci richieste CSRF che vanno a buon fine e altre no: se ne si prova una e il browser restituisce errore, non significa che altre operazioni non soffrano del bug. Il consiglio per gli aspiranti bug hunter è quindi quello di testare diverse chiamate fino a trovarne una vullnerabile.