"No has logrado ingresar a un sitio web porque olvidaste el password, pero has notado algo muy peculiar en esa página".
Y cuál es ese algo muy peculiar?
Pues que cada vez que escribes algo en un control html... éste luego pasa a formar parte del contenido de la página web, cierto?
Ciertoooooooooo!! oye tienes razón!!, hace un rato puse como usuario 'XXX' y luego que presioné el botón ingresar, había un mensaje dentro de la página que decía "Bienvenido XXX".
Luego, si yo erraba el password, se mostraba un texto en rojo sobre la página web que me decía que el password 'xyz' que acababa de ingresar no era válido.
Qué significa todo esto?
Que si un developer no ha validado los textos que puede ingresar un usuario... entonces tiene un hueco de seguridad, y, además, si tú logras ejecutar un script allí... entonces decimos que estamos realizando un ataque XSS o inyección HTML.
Vamos a crear un caso similar y bastante simple, cuya finalidad será mostrar otro ataque XSS.
Imagina que un usuario intenta ingresar a un sitio web, pero no recuerda su usuario ni/o password.
Debido a esto, recibe un mensaje que dice: "datos incorrectos, inténtelo de nuevo."
Lo peculiar es que este mensaje se muestra en la url, algo así:http://www.misitioweb.com/login.asp?msg=datos%20incorrectos,%20intentelo%20de%20nuevo
Y tú deduces, "si la página web me está mostrando un mensaje que estaba en la url... entonces, si yo cambio el mensaje en la url... hmmm.... será??"
Y todo curioso, modificas la url a esto:
Te imaginas el resultado:
una mensaje de alerta que dice "XSS",
Eureka!! otro hueco donde inyectar XSS...
cómo?? digo esteeeee, qué mal... hay que corregir esto jeje.
Ahora crearemos un ataque XSS, armaremos un XSS bien bonito y, se lo enviaremos a nuestros mejores amigos.
Pero eso será en la próxima entrega.
Inyecciones HTML (XSS) - iii
Chau.
2 comentarios:
La solucion es que el developer pase los datos con el método POST, y no se ve nada en la URL ;)
Realmente crees que esa es la solución?
Publicar un comentario