Skip to main content

ffuf


Exploring Web Applications with ffuf: A Fuzzing Odyssey
Fuzzing, a pivotal technique in the realm of ethical hacking and penetration testing, empowers security professionals to systematically assess web applications for potential vulnerabilities. Among the array of tools available, one that truly excels is the versatile ffuf. In this article, we embark on a journey through the myriad applications of ffuf, showcasing its adaptability in uncovering potential weaknesses.

1. Unveiling Hidden Gems: Fuzzing File Paths
Our adventure begins with a fundamental exploration of fuzzing file paths on a target web server. In this scenario, we utilize the raft-medium-words-lowercase.txt wordlist to replace the FUZZ placeholder in the URL:

ffuf -u http://<TARGET_IP>/hidden_directory/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/raft-medium-words-lowercase.txt \
-e .php,.txt

This command endeavors to unearth concealed files and paths within the specified directory, with a keen focus on PHP and text files.

2. Exclusionary Tactics: Bypassing Response Code 403
Elevate your fuzzing experience by excluding specific HTTP response codes. The following example dismisses paths that return a 403 Forbidden status:

ffuf -u http://<TARGET_IP>/restricted_directory/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt \
-fc 403

This strategic move aids in filtering out paths that are strictly off-limits.

3. Fine-Tuning with Precision: Filtering by HTTP Response Code
Sometimes, the focus may narrow to paths with a specific HTTP response code. The subsequent example illustrates fuzzing for paths that yield only 200 responses:

ffuf -u http://<TARGET_IP>/endpoint/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt \
-mc 200

This refinement proves especially beneficial when concentrating on successful paths.

4. Size Matters: Filtering by Response Size
To further refine the search, paths can be filtered based on their response size. The following command includes only paths with a non-zero response size:

ffuf -u http://<TARGET_IP>/endpoint/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt \
-fs 0

This proves instrumental in identifying potentially intriguing paths.

5. Pattern Recognition: Filtering by Regex Pattern
Harnessing regex filtering allows for the fuzzing of paths that match a specific pattern. The example below filters paths containing a dot (.):

ffuf -u http://<TARGET_IP>/directory/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt \
-fr '/\..*'

This feature is invaluable for targeting paths with distinct characteristics.

6. Parameter Precision: Fuzzing for Parameters with a Filter
Going beyond simple paths, ffuf seamlessly fuzzes parameters within URLs. In this example, we target the 'FUZZ' parameter in a SQLi-lab URL:

ffuf -u 'http://<TARGET_IP>/endpoint/?user=FUZZ' \
-c -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt

This proves invaluable for pinpointing potential injection points.

7. Parameter Piping: Fuzzing Parameters from Stdout
Fuzzing parameters can also be achieved by piping values from stdout. The following example employs the seq command to generate numbers and fuzz the 'id' parameter:

seq 0 255 | ffuf -u 'http://<TARGET_IP>/endpoint/?id=FUZZ' -c -w - -fw 33

This approach ensures comprehensive parameter testing.

8. Cracking the Code: Brute Forcing HTTP POST Form
In scenarios involving form-based authentication, ffuf flexes its muscles in performing brute-force attacks. In this instance, we endeavor to crack login credentials on a page:

ffuf -u http://<TARGET_IP>/login/ \
-c -w /usr/share/seclists/Passwords/Leaked-Databases/hak5.txt \
-X POST -d 'username=johndoe&password=FUZZ&submit=Submit' \
-fs 1435 -H 'Content-Type: application/x-www-form-urlencoded'

This endeavor sheds light on potentially weak credentials.

9. Beyond Paths: Fuzzing Subdomains
ffuf's prowess extends beyond paths; it can be harnessed for subdomain discovery. The next example delves into subdomain fuzzing on a given domain:

ffuf -u http://FUZZ.example.com \
-c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-fs 0

This uncovers additional entry points in the vast landscape of web applications.

10. Controlled Traffic: Sending Through a Proxy
To scrutinize and manipulate traffic, ffuf seamlessly integrates proxy functionality. The following command channels traffic through a proxy while concurrently fuzzing paths:

ffuf -u http://<TARGET_IP>/ \
-c -w /usr/share/seclists/Discovery/Web-Content/common.txt \
-x http://<ATTACKER_IP>:8080

This proves instrumental for in-depth analysis and request modification.

11. Selective Replay: Sending Only Matches to Your Proxy
For a more targeted approach, selectively send matching requests to your proxy for subsequent analysis or replay:

ffuf -u http://<TARGET_IP>/ \
-c -w /usr/share/seclists/Discovery/Web-Content/common.txt \
-replay-proxy http://<ATTACKER_IP>:8080

Popular posts from this blog

Open eClass – CVE-2024-26503: Unrestricted File Upload Leads to Remote Code Execution

During an assessment, I identified a severe security vulnerability within Open eClass, an e-learning platform extensively utilized across educational institutions, notably within Greece, where it is deployed by virtually all Greek Universities and educational entities. Open eClass, developed by GUnet (Greek Universities Network), is instrumental in delivering asynchronous e-learning services. The vulnerability, cataloged under CVE-2024-26503, involves an unrestricted file upload flaw that enables remote code execution (RCE), impacting versions 3.15 and earlier of the platform. This critical security lapse presents a significant risk, potentially allowing unauthorized access and control over the system, thereby compromising the integrity and security of the educational infrastructure. Affected Versions: ●   version <=  3.15 CVSSv3.1 Base Score: 9.1 ( Critical ) CVSSv3.1 Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H Exploitation Guide The vulnerability can be exploited

How I Use Obsidian for Penetration Testing, CVE Hunting, and Studying

In the ever-evolving realm of cyber security, the tools and techniques at our disposal are as varied as the threats we aim to counteract. Among these tools, note-taking applications play a pivotal role, not just in organizing our thoughts but in streamlining our entire workflow. Today, I'm excited to share how Obsidian, a tool I embraced over two and a half years ago while preparing for my eJPT exam, has become an indispensable ally in my journey through penetration testing, CVE hunting, and continuous learning. If you're not yet familiar with Obsidian, it's a robust note-taking application that operates on a local collection of plain text Markdown files. What sets it apart is its capability to interlink ideas, forming an expansive web of knowledge that is both intuitive and comprehensive to explore. Through considerable customization, I've developed what I consider to be an ideal method for consolidating notes, insights, and projects into a unified workspace. Here'

CTF: Portfolio Walkthrough

Scenario A passionate web developer recently launched his personal portfolio website, proudly displaying his projects and sharing his thoughts through a vibrant blog. His focus on design and functionality has left glaring security holes. As his blog gains popularity, you, a skilled hacker, spot the perfect target. Your mission is clear: exploit the vulnerabilities, compromise his site, and expose his negligence. Every weakness is an opportunity, every oversight a path to control. In this CTF challenge, you are the hacker. Uncover the flaws, break through the defenses, and leave your mark on the developer’s digital pride. Welcome to "Portfolio CTF" The game is on. Good luck! You can download the OVA for the Portfolio CTF from this  link SPOILER ALERT: Do not read further if you intend to solve the CTF challenge on your own. The write-up follows below. Introduction I created this Capture The Flag (CTF) machine with dual objectives: to provide a comprehensive training ground fo