Red Hot Cyber
Sicurezza Informatica, Notizie su Cybercrime e Analisi Vulnerabilità
JavaScream: il toolkit per pentest che scova i Javascript pericolosi nelle pagine web

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

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.

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!

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.

Davide Cavallini 300x300
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.

Articoli in evidenza

Immagine del sitoInnovazione
Robot in cerca di carne: Quando l’AI affitta periferiche. Il tuo corpo!
Silvia Felici - 06/02/2026

L’evoluzione dell’Intelligenza Artificiale ha superato una nuova, inquietante frontiera. Se fino a ieri parlavamo di algoritmi confinati dietro uno schermo, oggi ci troviamo di fronte al concetto di “Meatspace Layer”: un’infrastruttura dove le macchine non…

Immagine del sitoCybercrime
DKnife: il framework di spionaggio Cinese che manipola le reti
Pietro Melillo - 06/02/2026

Negli ultimi anni, la sicurezza delle reti ha affrontato minacce sempre più sofisticate, capaci di aggirare le difese tradizionali e di penetrare negli strati più profondi delle infrastrutture. Un’analisi recente ha portato alla luce uno…

Immagine del sitoVulnerabilità
Così tante vulnerabilità in n8n tutti in questo momento. Cosa sta succedendo?
Agostino Pellegrino - 06/02/2026

Negli ultimi tempi, la piattaforma di automazione n8n sta affrontando una serie crescente di bug di sicurezza. n8n è una piattaforma di automazione che trasforma task complessi in operazioni semplici e veloci. Con pochi click…

Immagine del sitoInnovazione
L’IA va in orbita: Qwen 3, Starcloud e l’ascesa del calcolo spaziale
Sergio Corpettini - 06/02/2026

Articolo scritto con la collaborazione di Giovanni Pollola. Per anni, “IA a bordo dei satelliti” serviva soprattutto a “ripulire” i dati: meno rumore nelle immagini e nei dati acquisiti attraverso i vari payload multisensoriali, meno…

Immagine del sitoCyber Italia
Truffe WhatsApp: “Prestami dei soldi”. Il messaggio che può svuotarti il conto
Silvia Felici - 06/02/2026

Negli ultimi giorni è stato segnalato un preoccupante aumento di truffe diffuse tramite WhatsApp dal CERT-AGID. I messaggi arrivano apparentemente da contatti conosciuti e richiedono urgentemente denaro, spesso per emergenze come spese mediche improvvise. La…