Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

121
Vistas
¿Cómo hacer un sitio vulnerable XSS con un registrador de teclado?

Quiero crear un sitio web que sea vulnerable a un ataque XSS en el que el atacante intente inyectar un registrador de teclas que registre las pulsaciones de teclas de cada víctima en este sitio web.

Aquí está el sitio web implementado y siguiendo el código:

 function submitted(){ alert("Submitted!"); }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="index.js"></script> </head> <body> <h1>XSS keylogger test website</h1> <form id="form"> <input type="text" id="fname" name="fname"> <input type="submit" value="Submit" onclick="submitted()"> </form> </body> </html>

Un ejemplo de un script JS que contiene código para un registrador de teclado que podría inyectarse:

 <script> function keyPressed(){ alert("key pressed"); } window.captureEvents (Event.KEYPRESS); window.onkeypress=keyPressed; </script>

Si solo pongo el código en el campo de entrada, no pasa nada. ¿Cómo puedo incrustar el código en el sitio web para que realmente funcione?

INFORMACIÓN

El proyecto solo se utiliza con fines de demostración y aprendizaje.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

keylogger que registra las pulsaciones de teclas de cada víctima en este sitio web.

Dada su configuración, no es realmente así como funciona XSS. XSS funciona ya sea:

  • Un usuario envía contenido, luego el servidor entrega ese contenido a otros usuarios de manera insegura. Dado que su servidor no está guardando el contenido generado por el usuario (como en una base de datos) y luego mostrándolo a otros visitantes, incluso considerando que este enfoque no es un comienzo porque no está haciendo nada de eso.
  • O bien, se engaña a un usuario para que envíe contenido que luego da como resultado la ejecución de código arbitrario. Esto es un problema porque, por ejemplo, las credenciales de inicio de sesión de ese usuario y otros datos podrían ser robados (si el sitio tuviera tales características). Esto es razonablemente factible dada cualquier configuración de front-end mal diseñada, por ejemplo, insertando el texto del usuario como HTML sin desinfección (como con una lista de tareas pendientes o algo así). (Si no inserta el texto del usuario en el DOM en alguna parte, XSS está fuera de la mesa)

 const fname = document.querySelector('#fname'); function submitted(){ document.querySelector('.current-input-text').innerHTML = 'You submitted: ' + fname.value; fname.value = ''; } fname.value = ` <img src="bad" onerror='window.onkeypress = (e) => console.log(e.key + " PRESSED");'>`;
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="index.js"></script> </head> <body> <h1>XSS keylogger test website</h1> <form id="form" onsubmit="return false;"> <input type="text" id="fname" name="fname"> <input type="submit" value="Submit" onclick="submitted()"> </form> <div class="current-input-text"></div> </body> </html>

about 4 years ago · Juan Pablo Isaza Denunciar

0

La carga útil que se envía no se devuelve en la página, lo que podría causar un xss.
Me parece que el cambio que tendrías que hacer sería del lado del servidor.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda