Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

JavaScream: il toolkit per pentest che scova i Javascript pericolosi nelle pagine web

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à:

  • Programmazione migliorata dal punto di vista funzionale
  • Protezione della memoria nella ricorsione per la ricerca nel codice
  • Creata estensione per Firefox
  • Modificata completamente la struttura dei Payload
  • Aggiunti molti payload RCE e Sql Injection
  • Aumento delle performance di velocità durante la scansione (più payload testati nella stessa quantità di tempo)
  • Eliminato il bug del parametro undefined durante la scansione
  • Rimossi molti falsi positivi durante le scansioni con il fuzzer
  • Aggiunta interfaccia grafica
  • Aumentate le stringhe ed espressioni regolari per la ricerca nel codice
  • Aggiunta auto reverse-shell con settaggi ip e porta dell’attaccante
  • Potenziata la serializzazione dei dati dei form per il fuzzing
  • Ordinata la repository
  • Risolto bug dei jQuery listeners
  • Aggiunto il Reverse Mapper per i metodi Javascript
  • Aggiunte info di debug utili durante esecuzione Payloads
  • Ri-testato tutto

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.


PARTE LA PROMO ESTATE -40%

RedHotCyber Academy lancia una promozione esclusiva e a tempo limitato per chi vuole investire nella propria crescita professionale nel mondo della tecnologia e della cybersecurity!

Approfitta del 40% di sconto sull’acquisto congiunto di 3 corsi da te scelti dalla nostra Academy. Ad esempio potresti fare un percorso formativo includendo Cyber Threat intelligence + NIS2 + Criptovalute con lo sconto del 40%. Tutto questo lo potrai fruire, dove e quando vuoi e con la massima flessibilità, grazie a lezioni di massimo 30 minuti ciascuna.

Contattaci tramite WhatsApp al 375 593 1011 per richiedere ulteriori informazioni oppure scriviti alla casella di posta [email protected]



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!

Conclusioni

Perchè utilizzare questo strumento in fase di sviluppo quando esistono tools più specifici?

  • Perchè racchiude vari strumenti in uno. 
  • Perchè permette un’analisi immediata della pagina. 
  • Perchè è non richiede nessuna configurazione
  • Perchè è velocissimo

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!

Davide 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

Da AI white ad AI black il passo è breve. Nuovi strumenti per Script Kiddies bussano alle porte

I ricercatori di Okta  hanno notato che aggressori sconosciuti stanno utilizzando lo strumento di intelligenza artificiale generativa v0 di Vercel per creare pagine false che imitano qu...

Se è gratuito, il prodotto sei tu. Google paga 314 milioni di dollari per violazione dei dati agli utenti Android

Google è al centro di un’imponente causa in California che si è conclusa con la decisione di pagare oltre 314 milioni di dollari agli utenti di smartphone Android nello stato. Una giu...

CTF di RHC 2025. Ingegneria sociale in gioco: scopri la quarta “flag” non risolta

La RHC Conference 2025, organizzata da Red Hot Cyber, ha rappresentato un punto di riferimento per la comunità italiana della cybersecurity, offrendo un ricco programma di talk, workshop e compet...

Linux Pwned! Privilege Escalation su SUDO in 5 secondi. HackerHood testa l’exploit CVE-2025-32463

Nella giornata di ieri, Red Hot Cyber ha pubblicato un approfondimento su una grave vulnerabilità scoperta in SUDO (CVE-2025-32463), che consente l’escalation dei privilegi a root in ambie...

Hackers nordcoreani a libro paga. Come le aziende hanno pagato stipendi a specialisti IT nordcoreani

Il Dipartimento di Giustizia degli Stati Uniti ha annunciato la scoperta di un sistema su larga scala in cui falsi specialisti IT provenienti dalla RPDC i quali ottenevano lavoro presso aziende americ...