Red Hot Cyber

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

Cerca

Il Tool per Javascript che mancava agli Ethical Hackers

Davide Cavallini : 24 Luglio 2022 09:35

  

Autore: Davide Cavallini

Sono uno sviluppatore software da undici anni e appassionato di Ethical Hacking e Informatica Quantistica. Oggi vorrei presentarvi il mio nuovo progetto, in via di sviluppo. 

Il tutto nasce dalla difficoltà che ho trovato nella ricerca di  tools per rilevare vulnerabilità in javascript all’interno del browser ed inoltre ho visto che la ricerca di bug in javascript è molto sottovalutata.

Secondo me invece nasconde grandi insidie e potenzialità per gli hacker, che spesso così riescono a fare enormi danni nei sistemi informatici, causando anche enormi problemi organizzativi e di costi, rischiando anche di far fallire le aziende che perdono la credibilità da parte dei loro clienti.

Tutto inizia da una necessità

Nel tempo, ho notato la presenza di varie estensioni che ricercano vulnerabilità nei parametri non filtrati, però non avevo mai trovato degli strumenti che aiutassero in modo efficiente l’ethical hacker a guardare nei punti solitamente più sensibili all’interno del codice caricato in memoria.

In realtà ho scoperto che i problemi di solito si nascondono all’interno delle richieste che i metodi javascript fanno al backend. Un esempio possono essere i sistemi di autenticazione scritti male, l’invio di email facilmente falsificabili dal frontend, che quindi permettono facilissimi attacchi di pishing, fino al Cross Site Scripting, anche persistente, molto frequente, e anche in alcuni casi SQL Injections e RCE.

Spesso però questi tipi di vulnerabilità non sono facili da scoprire con il semplice fuzzing, ma occorre anzitutto esperienza come Hacker, e bisogna leggere pagina per pagina per intero.

Per questo ho pensato di fare un piccolo tool, ancora in via di sviluppo e miglioramento, che permettesse all’hacker di fare lo stesso lavoro, ma mostrando già in partenza i punti nei quali potrebbero nascondersi facilmente le vulnerabilità, all’interno sia del sorgente, che dei metodi javascript all’interno della memoria della finestra “window”, non che dei listeners, sia javascript che jQuery.

Ho potuto constatare che il tool mi sarebbe stato utilissimo, se fosse già stato pronto, nell’analisi di molti siti web vulnerabili che avevo già analizzato manualmente.

Inoltre è stato fatto in modo che sia facilmente implementabile, dal punto di vista dell’inserimento di payloads e delle analisi svolte. Lo script rileva anche già alcuni XSS, SQL Injection e RCE di base, e mostra l’header della pagina e il cookie in console. Spesso anche dal cookie o dagli header si scopre che l’unico parametro che tiene in vita la sessione dell’utente è il SESSIONID, senza alcun controllo aggiuntivo.

Il link del progetto è https://github.com/dade1987/jsBugHuntingHelper

E’ necessario semplicemente fare “copia-incolla” del codice del file jsBugHuntingHelper.js, o della versione minificata, nella console, quando si è nella pagina web. Se la pagina contiene anche dei parametri nell’url, verranno testati automaticamente anche gli XSS, SQLI e RCE di base.

Il progetto è open source e gratuito, ed è aperto ad eventuali collaborazioni.

Un esempio di utilizzo del tool

Qui vi farò alcuni esempi di rilevazioni di vulnerabilità, utilizzando il mio script.

Trovata funzione di autenticazione rotta, direttamente cliccando sulla funzione all’ultima riga evidenziata.

Segnalata vulnerabilità XSS

Segnalata SQL Injection nella pagina corrente

Segnalazione di errore RCE, in un file php che a sua volta fa partire un programma in Java

Trovato form con metodo POST (schermata 1). Passando i parametri nella pagina stessa con un piccolo payload (un apice) troviamo subito una SQL injection

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.