En esta oportunidad voy a demostrar y comprobar que tan grave puede ser
una vulnerabilidad de tipo Cross Site Scripting No Persistente (XSS).
Para entrar en tema vamos a hacer un breve repaso por las cuestiones técnicas de dicho fallo de diseño:
XSS
es una vulnerabilidad Web que surge del incorrecto saneamiento de
parámetros de entrada, mediante el cual puede inyectarse código de
script en el cliente.
Ejemplo de código php vulnerable:
De esta forma podríamos aprovecharnos haciendo una molificación en los parámetros de la siguiente forma:
En
código PHP, podríamos evitar estos dolores de cabeza haciendo un
correcto saneamiento con las funciones “urlencode”, “htmlentities” y
“addslashes”.
El objetivo de este articulo NO es hacer un
tutorial explicativo sobre el fallo, sino ampliar las fronteras del
alcance e impacto para que se tenga en consideración la gravedad de los
hechos.
Si bien es cierto que seria demasiado conseguir las
cookies de la víctima, porque no explorar mas allá de lo ya bien
conocido y combinamos técnicas para lograr acceso a su equipo en vez de
quedarnos con su información ?!
Podríamos utilizar la URL como
vector de ataque y contaríamos con la ventaja de que el dominio ya
cuenta con su reputación propia, por lo cual, nadie desconfiaría a la
hora de darle “Click”. Dentro del URIPATH podríamos agregar un
<script> para hacer una redireccion a nuestro sitio malicioso.
Comenzamos cargando en metasploit un ClientSide, en este caso:
Proporcionamos los datos de conflagración necesarios.
Una
vez preparado el servidor atacante, se prepara el URI para enviar a la
víctima. Se puede hacer una codificación del URIPATH para evitar una
lectura sencilla que advierta la redireccion, para esto se puede
utilizar un URLENCODER.
El link puede ser enviado por cualquier medio: mail, msn, redes
sociales, etc. En este caso agregamos un “Alert” para mostrar la
redirección en proceso:
Entre tanto, del lado del servidor pasa lo siguiente:
Y
como vemos en el screenshot se ha creado una nueva sesión de
meterpreter, lo cual significa que conseguimos Acceso y control total
del equipo víctima utilizando como vector de ataque un simple XSS No
persistente.
Del lado de la víctima en este caso estaría viendo lo siguiente:
Para finalizar vamos a crear un directorio en el escritorio de la víctima desde la consola de meterpreter con un clásico PWNED:
Y
de esta forma queda demostrada la GRAVEDAD de un simple XSS no
persistente. Quizas no es tan grave para la integridad del sitio
vulnerable, pero si lo es para los clientes/usuarios que visitan la
pagina en cuestión. La credibilidad de una empresa puede decaer
considerablemente si se llegase a utilizar su dominio como medio de
infección.
Source ~ Mkit