Davide Cavallini : 3 Agosto 2022 07:00
Autore: Massimiliano Brolli
Ne avevamo parlato poco tempo fa di questo software, ma nel mentre molte cose sono state migliorate e oltra ad avergli dato un nome, sono state introdotte una serie di nuove funzionalità:
Davide Cavallini è uno sviluppatore italiano di software e un penetration tester in ambito web che per esigenze personali ha iniziato a sviluppare uno strumento che ora è diventato una estensione di Firefox per poter trovare facilmente bug all’interno delle pagine web visitate.
FINO AL 31 DICEMBRE, sconti estremi sui corsi Red Hot Cyber
Affrettati!
Fino al 31 dicembre potrai acquistare a prezzi scontati i nostri corsi cliccando sui seguenti coupon:
Supporta RHC attraverso:
Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo.
E’ semplice da usare ed è ancora in fase di sviluppo, pertanto potrete trovare ancora dei bug e dei miglioramenti da introdurre, ma con pochi step ci mostra la qualità del codice lato client presente nelle pagine che navighiamo, ora con una interfaccia grafica.
Inoltre, l’esigenza per uno strumento simile in ambito cybersec era molto sentita.
Il programma è facilmente installabile. Basta aprire l’url “about:debugging” e in “Questo Firefox” caricare il “manifest.json”. Non necessita praticamente di nessuna configurazione, e permette una scansione passiva abbastanza efficace.
A tal proposito abbiamo intervistato Davide Cavallini, membro della nostra Community per fargli qualche domanda in proposito:
RHC: Buongiorno Davide, raccontaci un po’ chi sei
Davide Cavallini: Buongiorno Massimiliano. Intanto volevo ringraziare per la grande opportunità di far conoscere il mio lavoro che mi state fornendo. Posso dirvi che sono essenzialmente un appassionato di programmazione fin dalla tenera età. Ho iniziato a programmare a 7 anni in linguaggio Basic sul computer Philips 8020 di mio nonno. All’inizio copiavo codice. Poi ho iniziato a ragionare e scrivere qualche programmino semplice su carta. Quando successivamente andavo dal nonno lo mettevo in esecuzione. Credo la mia spinta fosse quella di inventare qualcosa di nuovo… certamente questa è la forza motrice che ha fatto crescere ogni giorno la mia passione. Nel mondo nuovo della programmazione la voglia di inventare trova ancora moltissima ispirazione.
RHC: Molto interessante. E dal punto di vista lavorativo?
Davide Cavallini: Lavoro come programmatore da circa 11 anni. Mi sono sempre occupato di Web Applications. Programmo in PHP, JavaScript e relativi framework. Usiamo una base modulare fatta in Laravel e Vue, chiamata “Xot Cms”. Lavoro sempre assieme al team Laraxot di Marco Sottana. E’ un programmatore e persona di cui ho tantissima stima. Da qualche tempo sono anche Project Manager e Penetration Tester come lavoratore dipendente. Altra mia passione è certamente l’informatica quantistica. Sono riusciuto anche ad ottenerne alcune certificazioni”
RHC: Bene. Che cosa ci racconti del tuo tool?
Davide Cavallini: E’ uno strumento che ho ideato inizialmente per uso personale. Volevo avere una panoramica rapida sulle pagine web e senza configurare nulla
RHC: Ma dimmi come mai ti è venuta in mente questa idea? Perché l’hai fatto?
Davide Cavallini: In primis perché ne avevo bisogno. In secundis per velocizzare il lavoro. Non ho finora mai trovato nulla di simile, così semplice e comodo da usare. Certo, è ancora in fase di sviluppo. In questi giorni il tool è stato arricchito di una comoda interfaccia grafica. Spero presto di poterlo migliorare grazie alla collaborazione di validi colleghi
RHC: Bene. Ti lascio spazio per spiegare bene il software.
Davide Cavallini: Grazie Massimiliano. E’ sempre un piacere parlare con te e con i membri di Red Hot Cyber. Ritengo che sia una rivista online di CyberSecurity dalla professionalità indiscussa. E’ certamente un giornale assolutamente valido e libero e che seguo fin dalla sua nascita. Partiamo dal software appena installato. Sono presenti solo due bottoni, ed una serie di checkbox con dei settaggi facoltativi. Lanciamo la scansione di base, senza checkbox, apriamo la GUI e la console (F12). Già al primo impatto possiamo trovare dei possibili indicatori di rischio. Tutto ciò all’interno della pagina web, del javascript caricato in memoria e dei listeners. La prima sezione che vediamo è intitolata “Body Source Suspicius Points”. Indica i punti potenzialmente sospetti trovati nel sorgente HTML della pagina.
Esempio. In questo semplicissimo caso, vediamo subito che c’è un form che fa una richiesta POST nel body
Già così troveremo form, inclusi nascosti, API keys o altri elementi senza leggere il codice.
La seconda sezione che vediamo si chiama “Window Memory Suspicious Point”. Analizza i metodi javascript nella memoria e ci permette anche delle azioni interessanti. Andiamo a vedere:
Notiamo subito che il metodo f07 contiene una richiesta POST via Ajax con dei parametri. Per andare più nel profondo clicchiamo l’hyperlink f07 e apriamo la console. Cliccando la freccetta in console ci troviamo nel debugger dentro la funzione stessa.
In questo caso possiamo andare a replicare la richiesta e vedere che cosa ci restituisce
Come fare a vedere i possibili entry point per arrivare a richiamare la funzione f07?
Niente di più facile! infatti basta cliccare il link “Reverse Map” all’interno dell’interfaccia grafica. Vediamo che cosa succede…
Noteremo subito che in console sono apparse delle scritte. La prima riga va ad indicare la funzione su cui abbiamo fatto Reverse Mapping, cioè f07. Il livello è 0, ovvero ancora deve iniziare il mapping.
Nella seconda riga abbiamo f04 con livello 1. Significa f04 va a sua volta a richiamare il metodo f07, ed è ad un livello inferiore di 1 rispetto a f07 stesso.
Nella terza riga, e anche nella quinta riga, vediamo che abbiamo f03 e f05 a livello 2. Questo significa che f03() e f05() richiamano entrambe f04
Come quarta riga, come livello più basso di tutti, abbiamo f01,che richiama f03 > f04 > f07
Facendo uno schema troveremo questa “relazione tra metodi”
Quindi abbiamo già individuato senza sforzo gli entry point per arrivare ad f07(). Ma non finisce qui!
Infatti nella sezione “JS Listeners Suspicious Points” troviamo alcuni listener JavaScript potenzialmente sospetti. In questo caso vediamo che c’è una funzione che va a richiedere l’update di una tabella ad un MySql database.
Qui i listeners non sono cliccabili da interfaccia ma solo da console. Lo stesso vale per i jQuery listeners e per i listeners jQuery nel documento.
Esempio: $(document).on(“click”,”#test-element”,function() {})
Inoltre abbiamo altre informazioni potenzialmente utili a portata di mano: Cookie ed Headers.
Ok, ora andiamo a vedere la seconda parte: il fuzzer. Il fuzzer è un componente accessorio per capire la “schifosità” della pagina. Andiamo a fare una scansione completa, e vediamo i risultati…
Notiamo subito che alcuni payload RCE hanno dato risultato positivo.
Ora andiamo a fare qualcosa in più. Inseriamo nel form dell’estensione IP e porta in Ascolto. Apriamo un terminale ncat -l 3333. Vediamo che cosa succede facendo una scansione RCE + Form Fuzzer.
Et voilà, siamo dentro!
Perchè utilizzare questo strumento in fase di sviluppo quando esistono tools più specifici?
Ovviamente non toglie il fatto di poter usare tools migliori in base ai risultati avuti. Ribadiamo che chiunque volesse portarlo avanti e collaborare allo sviluppo è benvenuto. C’è tantissimo lavoro da fare!
Copyright @ 2003 – 2024 RED HOT CYBER
PIVA 16821691009