CrushFTP
Enterprise file transfer server - often runs in Docker containers.
Common Paths: /WebInterface/login.html, subdomain ftp.domain.com
Discovery
# VHost enumeration
gobuster vhost --url http://TARGET -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt --append-domain
# Common subdomain
ftp.TARGETIndicators:
Login page redirects to
/WebInterface/login.htmlServer header:
CrushFTP HTTP ServerCookie names:
CrushAuth,currentAuth
CVE-2025-31161 - Authentication Bypass (Race Condition)
Affects: CrushFTP 10.x, 11.x before 11.3.1
Enumerate users and create arbitrary accounts via race condition.
Exploits
Manual User Enumeration
Race condition on getUserList endpoint reveals usernames:
CVE-2024-4040 - SSTI/LFI
Affects: CrushFTP < 10.7.1, < 11.1.0
Post-Exploitation (After Login)
File Download
Login to CrushFTP web interface
Go to User Preferences → Browse server files
Add files/directories to your user's accessible paths
Return to main page and download
Key Files to Grab
User.XML Password Hash Extraction
Cracking CrushFTP Hashes
Pivoting via CrushFTP
If you have admin access:
Change other user's passwords
Upload files to web directories for webshell access
Check which directories users can write to
Config Paths
Notes
Often runs in Docker (check
/etc/hosts,os-release)Password reuse common between CrushFTP and SSH
Admin accounts may have access to entire filesystem (
root_dir: /)
Last updated