Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

123
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!