🧊 Directory Busting in OWASP Juice Shop with FFUF: Yeti Digs Deep

Heyo snowpackers — Yeti here, fresh off the slopes and armed with a fuzz cannon.
Today, we’re smashing down snow-covered doors in the world of directory busting — one of the oldest recon tactics that still lands juicy bugs (and bounty bucks). Let’s melt some ice with FFUF and OWASP Juice Shop. 🧨❄️
What is Directory Busting?
Directory busting (also known as path or endpoint fuzzing) is like treasure hunting with a battering ram. We're slamming our way into hidden URLs and undocumented routes that the developers hoped you wouldn’t find — but the Yeti always finds.
These routes might look like:
/admin
/backup
/api/debug
/ftp
/hidden-flag
“Security through obscurity is like hiding honey from a bear by putting it under a blanket.”
— Yeti, probably
Why does this matter?
These forgotten or "secret" directories often expose:
- Unprotected admin panels
- Sensitive configurations
- Backup files
- Internal API endpoints
- Entry points for further exploitation.
Let’s Fuzz with FFUF
Once you’ve spun up your Juice Shop at http://localhost:3000
, it’s time to drop some FFUF fury:
ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt:FUZZ -u http://localhost:3000/FUZZ
Breakdown:
Flag | Meaning |
---|---|
-w | Wordlist (e.g., from SecLists, DirBuster, etc.) |
FUZZ | Placeholder that FFUF replaces with each word |
-u | Target URL + injection point |
-fs 80117 | Filters out boring 404 pages (Juice Shop returns 80117-byte 404s) |
-o | Output saved to a file for easy digging later |
Bonus Tip: You can also fuzz subdirectories like/upload/
or/api/
to go deeper:

here we can see a common file size so maybe we can add the filter -fs to ignore a common file size. in our case 80117 So lets update our command but because there might be a large amount of endpoints lets make sure we save this to a file. So we will add > juicedir.txt so we will be saving all our endpoints to this file.

so next we can check what endpoints are available by using cat which allows you to read a file on the terminal and we can see quite a few endpoints

Sample Win: Hitting Gold
Let’s say one of the results is:
localhost:3000/ftp

Click it.
Suddenly you’re inside an internal file browser...
Configs, server logs, user exports — all staring back at you.
That’s no longer just recon — you’ve pivoted into information disclosure, privilege escalation, or even remote code execution depending on what’s exposed.
Real-World Impact: This Ain’t Just a Toy Problem
Too many devs think "If no one links to it, no one will find it."
That’s how backup files (.bak
, .zip
, .env
) and dev panels leak out onto production servers.
So let's score this using CVSS v3.1, assuming you found a juicy unprotected endpoint like /ftp
or /backup
.

Metric | Value | Why |
---|---|---|
Attack Vector | Network (N) | Anyone can access it remotely |
Attack Complexity | Low (L) | No special conditions needed |
Privileges Required | None (N) | Publicly accessible |
User Interaction | None (N) | No clicks or triggers needed |
Scope | Unchanged (U) | Still inside original system boundary |
Confidentiality | High (H) | Could leak sensitive data, source code, secrets |
Integrity | Low (L) | Might be able to alter minor content |
Availability | None (N) | Doesn’t crash or disrupt service |
Final CVSS Score: 8.2 – High
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
"Sometimes the most dangerous doors are the ones no one remembers building."
— Yeti, breaking into/forgotten-admin
Pro Tips from the Iceberg
- Use a Custom Wordlist: Tailor your list to the tech stack. PHP apps? Try
.php
,.bak
,.zip
. Node.js? Hitdebug
,env
,test
. - Recursive Enumeration: Found
/upload/
? Fuzz inside it. Found/admin/
? Fuzz that for more gold. - Filter Smart: Use
-fc
,-fs
, or-mc
to ignore noise and hone in on the juicy stuff. - Log Everything: FFUF logs are gold for reporting, auditing, and building repeatable methodologies.
Summary
Directory busting isn’t flashy. But it works.
It’s one of the easiest ways to go from 0 to critical in minutes — especially when developers leave things lying around like exposed flags and misconfigured endpoints.
One well-placed FFUF run can uncover:
- Broken access control
- Public backups
- Forgotten debug APIs
- Sensitive user data
- Initial footholds for full compromise
Final Yeti Wisdom
“Every app has a skeleton closet — and I’m here to rattle the bones.”
— Yeti, the Arctic App Breaker
That’s it for this frosty session.
Keep fuzzin’, stay sneaky, and always:
✅ Respect the scope
✅ Keep it legal
✅ Report responsibly
Until next time — Yeti out. 🐾☃️