Notas de Luis

Tabla de Contenidos

EJEMPLO 1

Vamos al menú de ajustes para ver si es vulnerable a server site template injection, ya que en el nombre se llega a multiplicar el 7 por 7:

Ahora el siguiente objetivo es ejecutar comandos dentro de este recuadro de full name, para ello vamos a utilizar un payload que podemos encontrarlo dentro de un repositorio de github donde se ubican los payloads más utilizados:

Filtramos dentro de go to file por server side template injection:

Y buscamos esto para localizar payloads que nos sirvan para ejecutar código remoto:

Y aquí podemos elegir el que queramos:

Y habremos comprobado que tenemos la opción de ejecutar comandos remotamente, en este caso ejecutamos el comando para conocer el id:

Pero yo puedo ejecutar cualquier comando en vez del id, entonces voy a poner hostname -i para conocer la IP:

EJEMPLO 2

También puede darse el caso de una web donde a pesar de no ver el output vulnerable, es posible que se esté aconteciendo por detrás, dentro del código fuente de la página:

Y vemos que aparentemente no se ejecuta, pero podemos mirar en el código html por detrás y veremos cómo si aparece el 49:

Y nos aparece este comentario diciendo que hay un directorio llamado archive:

Y en este directorio es donde si podemos ver el 49 y que por tanto es vulnerable a SSTI:

Ahora que vemos que es vulnerable a SSTI, vamos a ir al repositorio de payloadallthethings y encontramos este código de SSTI:

Por tanto vamos a ejecutar esto pero en vez de con un id, mejor ponemos por ejemplo un ls -l para listar los archivos:

Y vemos que por detrás, en el html sí funciona:

EJEMPLO 3

Ahora vamos a comprobar si al escribir un correo estamos ante un server side template injection, y efectivamente lo es, por lo que podremos ejecutar comandos:

Ahora para explotar esta vulnerabilidad, debemos conocer el lenguaje que está hecha la web, el cual es Nose.js:

Ahora buscaremos por internet una inyección de código para insertarlo en webs que tengan esta vulnerabilidad y sean Node.js, donde encontramos esta web que explica el SSTI en webs de node.js:

Copiaremos esa línea y vamos a ejecutarla en la web, pero a través de burpsuite, por tanto escribimos un correo aleatorio para que burpsuite lo intercepte (debemos configurar el certificado SSL para que burpsuite intercepte la petición):

Y esta petición será interceptada por burpsuite:

Y pegaremos todo esto:

Aunque tenemos que escapar las comillas para que no haya problemas con ellas, quedando de la siguiente manera:

Y si enviamos todo esto, vemos cómo recibimos una respuesta donde se ejecuta el código del /etc/passwd:

Llegados a este punto yo puedo ejecutar cualquier código, por ejemplo un whoami en lugar de un /etc/passwd; y vemos como nos da un email:

computing/hacking/hacking_web/ssti_server-site_template_injection.txt · Última modificación: por 127.0.0.1