Welcome to AFUZZ, a lightweight and efficient URL fuzzing tool designed to test web applications for vulnerabilities or hidden endpoints. Whether you're a penetration tester, bug bounty hunter, or just someone who loves exploring the unknown, AFUZZ is here to make your fuzzing experience both fun and powerful! ๐
-
๐ Supports Synchronous and Asynchronous Modes
Choose between synchronous (blocking) or asynchronous (non-blocking) fuzzing for optimal performance. -
โก Fast and Efficient
Leveragesaiohttp
for blazing-fast asynchronous requests. -
๐ ๏ธ Customizable Payloads
Use your own wordlists to replace placeholders in the base URL. -
โ Logs Only Successful Responses (200)
Outputs only URLs with200 OK
responses, keeping your results clean and focused. -
๐๏ธ Color-Coded Output
Highlights successful URLs in green for better visibility. -
๐พ Output Results to File
Saves results to a specified file for later analysis.
AFUZZ replaces the @
placeholder in the base URL with payloads from a wordlist and sends HTTP requests to test each variation. You can choose between synchronous or asynchronous modes based on your needs.
-
Clone this repository:
git clone https://github.com/yourusername/afuzz.git cd AFUZZ
-
Install dependencies:
pip install -r requirements.txt
-
You're ready to fuzz! ๐
Run the script with the following options:
python afuzz.py -u <base_url> -w <wordlist> -o <output_file> -m <mode>
Option | Description |
---|---|
-u , --url |
Base URL with @ as a placeholder (e.g., https://example.com/@ ). |
-w , --wordlist |
Path to your wordlist file containing payloads (one per line). |
-o , --output |
Path to the output file where results will be saved (e.g., results.txt ). |
-m , --mode |
Fuzzing mode: sync (synchronous) or async (asynchronous). Default is sync . |
python afuzz.py -u "https://example.com/@" -w wordlist.txt -o results.txt -m sync
python afuzz.py -u "https://example.com/@" -w wordlist.txt -o results.txt -m async
https://response1.com
https://response2.com
Successful responses (200): 2
https://response1.com
https://response2.com
-
URL Validation
Ensures the base URL is valid and contains the placeholder (@
). -
Synchronous Fuzzing (
sync_fuzz
)
Replaces the placeholder with each payload, sends HTTP requests usingrequests
, and logs only successful responses (200 OK
). -
Asynchronous Fuzzing (
async_fuzz
)
Usesaiohttp
to perform non-blocking HTTP requests, allowing multiple URLs to be tested simultaneously for faster results. -
Output Handling
Logs only successful URLs (200 OK
) to both the console and an output file for clarity and simplicity.
Here's a brief overview of how AFUZZ works:
-
Input Validation:
Ensures the base URL, wordlist, and other inputs are valid before proceeding. -
Synchronous Mode:
Uses Python'srequests
library to send HTTP requests one at a time. -
Asynchronous Mode:
Leverages Python'sasyncio
andaiohttp
libraries for concurrent requests. -
Output Results:
Logs only URLs with a status code of 200 (OK
) to both the console and output file.
AFUZZ handles common errors gracefully:
- Invalid URLs are flagged during validation.
- Errors during HTTP requests are logged but do not interrupt execution.
- If an output file already exists, you'll be prompted before overwriting it.
This project is licensed under MIT License. Feel free to use it in your projects! ๐
Happy fuzzing! ๐