Hack The Box // CTF Debrief FLAG CAPTURED

Case File:
Saranac Lake

7th Annual Saranac Lake Cybersecurity Conference — Team Exercise Write-Up

Target Host
154.57.164.79:32767
Exposed Surface
Port 80 — HTTP
Category
Web Exploitation
Result
Admin Access Obtained

During the 7th Annual Saranac Lake Cybersecurity Conference, a student and I worked together to solve an easy Hack The Box challenge. The objective was to identify weaknesses in a web application and obtain the flag. What follows is a step-by-step account of how a handful of small misconfigurations — an exposed backup directory, a leaked filename, and a crackable password hash — chained together into a full administrative compromise.

STAGE 01

Enumeration

Initial reconnaissance showed that only port 80 was open, indicating the web application itself was the primary — and likely only — attack surface. To map out hidden content, we ran Gobuster against the target using the DirBuster medium wordlist.

enumeration.shbash
$ gobuster dir -u http://TARGET_IP -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

The scan surfaced four directories of interest:

PathStatusNote
/backups301Redirect — worth a closer look
/dashboard403Protected admin area
/login200Application login portal
/static301Static asset directory

/dashboard returned a 403, confirming it was access-controlled. /login was reachable and appeared to be the app's authentication portal. The most interesting lead, however, was /backups — a directory name that has no business being reachable from the outside at all.

STAGE 02

Inspecting the Login Page

Before chasing /backups blindly, we pulled the raw source of the login page to see what the application itself revealed.

recon.shbash
$ curl http://154.57.164.79:32767/login ... href="mflow_sales_management_20240404.sql" ...

Buried in the page markup was a direct reference to a SQL backup file. A filename like that, sitting in front-end HTML, is a strong signal that a database dump had been left somewhere web-accessible.

STAGE 03

Retrieving the Database Backup

Combining the leaked filename with the /backups directory found during enumeration gave us a direct path to the file. We downloaded it without any authentication required.

exfil.shbash
$ curl -O http://154.57.164.79:32767/backups/mflow_sales_management_20240404.sql

Opening the dump revealed a full users table — including the administrator account and its hashed password.

Text editor showing the mflow_sales_management_20240404.sql dump with the users table INSERT statement, admin row highlighted
mflow_sales_management_20240404.sql — users table, admin row highlighted, MD5 hash 5416d7cd6ef195a0f7622a9c56b55e84
Why this matters: database backups should never be reachable from a public web server. A single exposed .sql file handed us six user records and an administrator credential in one request.
STAGE 04

Password Recovery

The admin account's password was stored as a raw MD5 hash — no salt. We submitted it to CrackStation, which checks hashes against a large corpus of previously-cracked values.

CrackStation hash cracker result showing the MD5 hash matched and cracked to a plaintext password
CrackStation — the admin hash had been cracked previously and was returned as a known plaintext match

The hash had already been broken and catalogued in public rainbow-table databases, so recovery was instant. That gave us a working administrator username and password.

STAGE 05

Gaining Access

With valid administrator credentials in hand, we authenticated through the application's /login page. This unlocked the previously-403'd /dashboard area, where the challenge flag was waiting — completing the objective.

DEBRIEF

Key Findings

Three distinct, individually minor misconfigurations combined into a full compromise:

FINDING 01

Publicly Accessible Backups

  • Database backup stored in a web-reachable directory
  • Dump contained full user records and password hashes
FINDING 02

Weak Credential Protection

  • Admin password hashed with unsalted MD5
  • Hash already present in public crack databases
FINDING 03

Information Disclosure

  • Backup filename referenced directly in page source
  • Turned a guessing game into a direct path to the file
RECOMMENDATIONS

Lessons Learned

CLOSING

Conclusion

Objective complete — flag captured

This challenge was an excellent demonstration of how seemingly small misconfigurations can lead to a complete compromise of a web application. Through enumeration, discovery of an exposed backup file, recovery of administrative credentials, and successful authentication, we obtained the flag and completed the exercise. It reinforced a simple lesson: secure backup management and credential hygiene aren't optional extras — they're the first line of defense.