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.


Vuoi diventare un esperto del Dark Web e della Cyber Threat Intelligence (CTI)?
Stiamo per avviare il corso intermedio in modalità "Live Class" del corso "Dark Web & Cyber Threat Intelligence".
A differenza dei corsi in e-learning, disponibili online sulla nostra piattaforma con lezioni pre-registrate, i corsi in Live Class offrono un’esperienza formativa interattiva e coinvolgente.
Condotti dal professor Pietro Melillo, le lezioni si svolgono online in tempo reale, permettendo ai partecipanti di interagire direttamente con il docente e approfondire i contenuti in modo personalizzato. Questi corsi, ideali per aziende, consentono di sviluppare competenze mirate, affrontare casi pratici e personalizzare il percorso formativo in base alle esigenze specifiche del team, garantendo un apprendimento efficace e immediatamente applicabile.

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




Supporta RHC attraverso:
L'acquisto del fumetto sul Cybersecurity Awareness
Ascoltando i nostri Podcast
Seguendo RHC su WhatsApp
Seguendo RHC su Telegram
Scarica gratuitamente "Dark Mirror", il report sul ransomware di Dark Lab


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


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

Multa di 2,95 miliardi di euro per Google per abuso di posizione dominante
Di Redazione RHC - 07/09/2025

La Commissione Europea ha inflitto a Google una multa di 2,95 miliardi di euro, per abuso di posizione dominante nel mercato della pubblicità digitale. L’autorità di regolamentazione ha affermato ...

I Padri Fondatori della Community Hacker
Di Massimiliano Brolli - 06/09/2025

La cultura hacker è nata grazie all’informatico Richard Greenblatt e al matematico Bill Gosper del Massachusetts Institute of Technology (MIT). Tutto è iniziato nel famoso Tech Model Railroad Club...

38 milioni di Numeri di telefono di Italiani in vendita nel Dark Web. E’ che Smishing Sia!
Di Redazione RHC - 06/09/2025

Sette italiani su dieci hanno il proprio numero di telefono incluso in questa banca dati. Ma cosa significa attualmente disporre di un tale quantitativo di numeri telefonici concentrati all’interno ...

Se Flash è morto, ecco a voi l’SVG Assassino! Il phishing 2.0 è in alta definizione
Di Redazione RHC - 05/09/2025

I criminali informatici hanno lanciato una nuova ondata di attacchi che utilizzano file SVG per distribuire pagine di phishing. Gli esperti di VirusTotal hanno segnalato che gli aggressori si spaccian...

Supercomputer: l’Italia al sesto e decimo posto nella classifica TOP500 del 2025
Di Redazione RHC - 05/09/2025

Il mondo dei supercomputer è entrato nell’era dell’exascale computing. La classifica TOP500 di giugno per il 2025 ha registrato tre sistemi americani ai vertici, un debutto clamoroso dall’Europ...