
Descripción
This lab is vulnerable to server-side template injection due to the unsafe construction of an ERB template.
To solve the lab, review the ERB documentation to find out how to execute arbitrary code, then delete the morale.txt
file from Carlos’s home directory.
Basic server-side template injection writeup
En la descripción del laboratorio, nos habla de que el servidor utiliza ‘Embedded Ruby (ERB)’. Revisaremos su documentación. Un ejemplo de su código es el siguiente:
<%# Non-printing tag ↓ -%>
<% if @keys_enable -%>
<%# Expression-printing tag ↓ -%>
keys <%= @keys_file %>
<% unless @keys_trusted.empty? -%>
trustedkey <%= @keys_trusted.join(' ') %>
<% end -%>
<% end -%>
Entraremos ahora en el laboratorio e intentaremos acceder al primer producto. Veremos que nos lanza el mensaje ‘Unfortunately this product is out of stock’. Su petición es la siguiente:

La aplicación toma directamente del atributo ‘message’ su valor y lo pone en la página. Vamos a intentar modificarlo para borrar el archivo. Enviaremos la petición al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater.
Cambiaremos el valor de messaje por lo siguiente:
<% system('ls') %>
Codificaremos a URL con Ctrl+U y veremos que el archivo está en el directorio de trabajo actual:

Cambiaremos el código ahora por:
<% system('rm morale.txt') %>
Codificaremos a URL con Ctrl + U y al enviar habremos completado el laboratorio:
