Introduction

Reto CTF involucrando SQLi, WordPress, enumeración vhost y reconocimiento de servicios internos.
Getting the Flags
Reconocimiento Inicial
Primero empezamos escaneando los puertos abiertos.

Ahora vamos a profundizar en dichos puertos.

Parece que hay algunos directorios, los investigaremos más tardes. Vamos a mirar qué directorios tiene la web con una herramienta.

No hemos encontrado nada más interesante que lo que ya teníamos, así que vamos a ver cómo se ve la web:
Profundización
Parece que no hay nada, vamos a mirar en robots.txt:

Vamos a ver qué nos encontramos en estos directorios. A primera vista, sólo hay uno de los directorios que conduce a algún sitio: /comingreallysoon/:

Vamos a ver qué vemos por ahí:

Después de navegar por toda la página encontramos un campo donde se puede meter texto. Si ponemos algo cualquiera como test, nos dice que el cupón no existe:

Ahora vamos a probar con una comilla:

Bingo, parece que la query hace algo como:
SELECT ___ WHERE ___ LIKE "%QUERY"
Vamos a ver si por aqí podemos hacer algo. Vamos a usar sqlmap.
sqlmap -u "http://wekor.thm/it-next/it_cart.php" --forms --dbs
Este comando nos devuelve lo siguiente:

Ahora vamos a entrar a WordPress. Como ya sabemos qué parámetro es vulnerable, vamos a utilizarlo:
sqlmap -u "http://wekor.thm/it-next/it_cart.php" --data="coupon_code=test&apply_coupon=Apply%20Coupon" -p coupon_code -D wordpress --tables --batch
Así obtenemos:

Vamos a mirar las entradas de wp_users:

De aquí obtenemos lo que necesitamos. Además, podemos ver que hay un virtual host en el user_url de admin, vamos a añadirlo y a realizar un escaneo.

Ahora vamos a crackear los hashes. Para ello creamos el siguiente documento:

Y por último se lo pasamos:

Vamos ahora a iniciar sesión en WordPress con lo que hemos obtenido. Con wp_jeffrey funciona.

Explotación
Una vez dentro de la cuenta, vamos a editar los temas:

Una vez allí vamos a subir una reverse shell de PHP:

Ahora la pegamos en la plantilla.

Y nos ponemos en escucha:

Ahora buscamos la página:
http://site.wekor.thm/wordpress/wp-content/themes/twentytwentyone/404.php
Y así obtenemos la shell:

Buscamos la flag.

Parece que tendremos que hacer un movimiento lateral. Después de un rato buscando no encontré nada, así que decidí listar servicios internos:

El servicio de ese puerto es memcached, el cual puede utilizarse para recuperar contraseñas.

[!TIP] Para salir escribe
quit.
Con dicha contraseña, iniciamos sesión con Orka.

Ahora leemos la flag.
Escalada de Privilegios
Ahora vamos a ver qué podemos ejecutar:

Si miramos el directorio del comando podemos ver que podemos modificarlo, aunque le pertenezca a root.

Ahora recreamos el documento con una shell:

Y al ejecutarlo:

Ahora leemos la flag:
Conclusión
Una máquina con su cierta complejidad, hemos practicado:
- Enumeración.
- Inyección SQL.
- Explotación de plantillas de WordPress.
- Listado de servicios.
- Servicio
memcached. - Escalada de privilegios por modificación de ruta.
Una máquina completa y con cierta complejidad, pero divertida.
