Enumeración
Comienzo realizando un escaneo de puertos con nmap y me encuentro con el puerto 22 y 80 que están abiertos:
El puerto 80 se esta ejecutando en el servidor nginx, así que voy a ingresar en el servidor para ver de que se trata:
Al hacer click en el enlace "Publish With Us" (el cual se encuentra en el menú de navegación) me lleva a una página donde puedo cargar un libro mediante un archivo o pasando una url.
Investigando un poco veo que se puede tratar de una vulneravilidad SSRF. Para mas información sobre esta vulnerabilidad pueden visitar esta pagina: https://www.ikusi.com/mx/blog/ssrf/#:~:text=La%20vulnerabilidad%20de%20seguridad%20web,dominio%20elegido%20por%20el%20atacante.
Explotación
Para comprobar si es posible explotar esta vulnerabilidad voy a utilizar Burpsuite y así ver que es lo que sucede cuando envío el enlace.
Al enviar la url noto que no hay ninguna autenticación, con lo cual podemos enviar la url que queramos. Para llevar a cabo el ataque SSRF coy a pasarle una url local acompañado de un puerto, el cual lo determinamos gracias al intruder de burpsuite.
Y de respuesta me devuelve lo siguiente:
Lo unico que me resulto interesante del resultado fue la api "authors", ya que puedo llegar a encontrar algun usuario. De todas maneras voy a ingresar en cada una de las APIs para ver su información.
En la API authors encuentro un mensaje de bienvenida que me indica la contraseña por defecto del usuario "dev":
Usando el usuario y la contraseña voy a acceder mediante SSH:
Y ahora con solo listar los archivos ya me encuentro con la bandera user.
Escalamiento de Privilegios
Para continuar realice algunas enumeraciones y encontre que hay un una carpeta llamada "apps" que contiene una carpeta ".git", la cual tiene algunos commit.
Usando el comando git show pude ver mas informacion sobre los commit y note que uno de los cambios esta relacionado con un usuario de nombre "prod".
De esta forma encontre la contraseña del usuario "prod" asi que ahora voy a ingresar mediante SSH.
Con el usuario prod tengo acceso total al archivo clone_prod_change.py, el cual me llamo la atencion y decidi investigar un poco mas hasta encontrar un CVE asociado a este archivo, CVE-2022-24439.
Estuve un buen tiempo investigando un exploit para esta vulnerabilidad y encontré lo siguiente:
De esta forma obtengo la bandera root.
Felicidades! Espero que te haya servido el tutorial.