Explotar una Inyección SSI (Server-Side Includes) en bWAPP

  • Posted on: 16 June 2016
  • By: ReYDeS

Los SSIs son directivas presentes sobre aplicaciones web utilizadas para alimentar una página HTML con contenidos dinámicos. Son similares a los CGIs, excepto el hecho de los SSIs ser utilizados para ejecutar algunas acciones antes de la página actual sea cargada o mientras la página está siendo visualizada. Para hacer esto el servidor web analiza SSI antes de proporcionar la página hacia el usuario.

Para la siguiente demostración se utiliza la versión de bWAPP incluida en OBWAP.

Ingresar a bWAPP, y seleccionar el “bug” de nombre “Server-Side Includes (SSI) Injection”, para luego hacer clic en el botón de nombre “Hack”.

En el formulario presentado, ingresar un nombre y un apellido. Luego hacer clic en el botón de nombre “Go”.

La página de respuesta incluye el nombre y el apellido ingresado, como también la dirección IP desde la cual se realiza la petición.

Utilizando la herramienta Zed Attack Proxy se analiza la página de respuesta, pues una manera de descubrir si la aplicación web es vulnerable, es verificando la presencia de páginas con extensión .stm, .shtm y .shtml. Sin embargo la ausencia de estas páginas no significa la aplicación está protegida contra ataques SSI.

Los comandos utilizados para inyectar SSI varían de acuerdo al sistema operativo del servidor. En este caso se está interactuando con un servidor Linux. El siguiente comando representa la sintaxis correcta a utilizar para ejecutar comandos del Sistema Operativo.

<!--#exec cmd="ls -l" -->

Utilizando la funcionalidad “Encode/Decode/Hash” de Zed Attack Proxy se codifica en URL el comando a enviar a través de la aplicación web.

Se activa la funcionalidad de interceptación de Zed Attack Proxy, para luego modificar el valor de parámetro de nombre “lastname”.

Si se ha ejecutado el comando correctamente en el sistema operativo del servidor, se obtiene un listado de nombres de archivos y directorios desde el servidor remoto donde reside la aplicación web vulnerable.

Un atacante de hecho también puede obtener el archivo “/etc/passwd”.

<!--#exec cmd="cat /etc/passwd" -->

El ataque SSI permite la explotación de una aplicación web inyectando scripts en páginas HTML o ejecutando remotamente código arbitrario. Esto puede ser explotado a través de la manipulación del SSI en uso en la aplicación o forzar su uso a través de los campos de entrada del usuario.

Es muy similar a la inyección de comandos, inyección HTML y XSS. La inyección SSI puede conducir a desfiguraciones del sitio web, control total del servidor y ataques de phishing.

Fuentes:

https://www.owasp.org/index.php/Server-Side_Includes_(SSI)_Injection
http://www.itsecgames.com/
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
http://httpd.apache.org/docs/current/mod/mod_include.html
https://httpd.apache.org/docs/current/howto/ssi.html

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense