githubEdit

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.TARGET

Indicators:

  • Login page redirects to /WebInterface/login.html

  • Server header: CrushFTP HTTP Server

  • Cookie 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

  1. Login to CrushFTP web interface

  2. Go to User Preferences → Browse server files

  3. Add files/directories to your user's accessible paths

  4. 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