Fuzzy matching HTTP file server with autocomplete and fallback
Project description
🔥 fuzzy-httpserver
A lightweight, zero-dependency Python HTTP file server with fuzzy filename matching and automatic fallback directory listing. Serve files easily without requiring users to know exact filenames — great for red teams, internal tooling, and lazy typing 😎.
🚀 Features
- 🔍 Fuzzy and prefix-based filename matching
- 🧾 Server-side logs directory contents if no file is matched
- ⚙️ Supports custom port and directory configuration
- ✅ No external dependencies — plug-and-play
- 🐍 Written in pure Python 3
- 📤 Supports POST data requests
- 🎨 Colored server-side output for better readability
- 🖵 Shows IP addresses of key network interfaces at startup
- Shows the Size and MD5 Hash of Received File - Integrity Check
📦 Installation
Install via pip:
pip install fuzzy-httpserver
🧪 Usage
Serve the current directory on the default port (8000):
fuzzy-httpserver
Serve a specific directory on a custom port:
fuzzy-httpserver -d /opt/tools -p 9001
Example
wget http://<ip>:8000/ligolo-win
Even if the exact file is ligolo-Agent-Windows-amd.exe, it will still serve the file thanks to fuzzy matching. If nothing is found, you’ll get:
[!] File not found. Available files:
- chisel_windows
- payload_generator
Basically the list of files on that server directory
🛠 Command-Line Options
| Option | Description |
|---|---|
-p, --port |
Port to listen on (default: 8000) |
-d, --directory |
Directory to serve (default: current dir) |
📨 POST Support
You can now send raw data via HTTP POST, and it will be saved on the server as a file. The filename will be prefixed with fuzzy_post_data_ followed by the requested name.
Example
curl --data @file.txt http://<ip>:8000/mydump.txt
#OR
curl --data "username=admin&password=1234" http://<ip>:8000/formdata.txt
🧠 Why?
Sometimes during internal testing, CTFs, or red teaming, we just want to serve files quickly — but can’t remember exact filenames. fuzzy-httpserver saves time by letting you guess loosely.
🧑💻 Author & Credits
Built with 💻 and ☕ by PakCyberbot.
🔗 Connect with me:
- 🌐 Website: http://pakcyberbot.com
- Twitter/x: https://x.com/pakcyberbot
- GitHub: https://github.com/PakCyberbot
- LinkedIn: https://www.linkedin.com/in/pakcyberbot/
- Medium: https://medium.com/@pakcyberbot
✨ Contributions Welcome
Want to improve it? Found a bug? PRs and issues are welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fuzzy_httpserver-1.4.0.tar.gz.
File metadata
- Download URL: fuzzy_httpserver-1.4.0.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15011023b70fdc3363aa71c67bcf20b190e780fdbade66ac053e5a92fff9f4a5
|
|
| MD5 |
cd627a24de2c63fcefee620949647a75
|
|
| BLAKE2b-256 |
ec4b6982b96e022d4afd65a5bd2937ffaf218293c8cdc74bab6a018c25443c43
|
File details
Details for the file fuzzy_httpserver-1.4.0-py3-none-any.whl.
File metadata
- Download URL: fuzzy_httpserver-1.4.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
122eb8b4e81e9dfb79a35c1b57053cdb6b6ab61fdc1b9ba136314a39ff88fa75
|
|
| MD5 |
7dbe8a7849f2fb5e50ef809cf242fd5a
|
|
| BLAKE2b-256 |
2f91cfbb4d15244b1d360d2969e0d249730d732e6aeedbd60db4ae90d155457c
|