Cyber ​​Apocalypse 2025 - Ataque cibernético

· 3min · Juicecat
Table of Contents

CyberAt Attack (Web)

Para este desafío, se nos da una IP y presumiblemente el código fuente para el sitio web en esa IP

index.md-53.pngindex.md-54.png

Mirando el código, vemos varias ubicaciones de inyección potencial.El sitio está utilizando scripts CGI Python para manejar las solicitudes, y un índice básico.php sin exploits del lado del servidor.Lo primero que me viene a la mente es la inyección de CRLF, ya que no vemos validación o desinfección de regex en el Nombre Param, así como que se imprima verbosamente como un encabezado. index.md-55.png que podemos verificar así: index.md-58.png

Esto funciona porque mientras imprime el encabezado, inyectamos \r\n, que luego podemos inyectar encabezados arbitrarios en

Además, vemos un otro script aparentemente protegido en CGI-bin, lo que implica que primero necesitamos explotar attack-domain antes de atacar attack-ip index.md-56.png Este es el código para attack-ip: index.md-57.png Aquí vemos la misma inyección de comando con os.popen, pero esta vez it's not protected by a regex, lo que significa que este debería ser nuestro objetivo final.

Entonces necesitamos:

  1. Explotar un SSRF en attack-domain
  2. Haga que el servidor llame a 127.0.0.1/cgi-bin/attack-ip para evitar la configuración de Apache
  3. Inyectar una carga útil en el os.popen

Al mirar el Dockerfile que vino con el desafío, vemos varios complementos de Apache habilitados deliberadamente, lo que me da curiosidad: index.md-69.png Pasé un tiempo long intentando rutas de exploit alternativas y bajando por los agujeros de conejo, pero finalmente me topé con esto en el documentation para mod_proxy_fcgi.Notarás que tiene una notación peculiar proxy:.

index.md-68.png

Antes de probar, configuré un túnel de acceso público para que no necesito confiar en Ngrok o Burp Colaborator, alojaré un servidor web de Python simple aquí para atrapar respuestas index.md-60.png

Así que ahora enviamos una carga útil ciega para hacer ping a nuestro túnel.Tenga en cuenta que necesitamos codificar dos veces la solicitud de proxy, ya que es una segunda solicitud anidada dentro de la primera index.md-75.png

Enviar la carga útil valida nuestras sospechas SSRF index.md-61.png SSRF logrado.Ahora nos movemos para explotar.Recuerde, ya vimos el código para attack-ip, por lo que sabemos que es fácilmente vulnerable a la inyección de comandos, ya que no hay regex lo protege.Crearé index.html en mi túnel que contiene un script para exfiltrar la bandera index.md-64.png Y cambie la carga útil para entrar en Bash para que realmente se ejecute: index.md-73.png ¡Luego recibimos una devolución de llamada con la bandera codificada Base64! index.md-67.png