Skip to main content

🔥 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

🚀 Major Update 1.5.0

Now Fuzzy-HTTPServer can install a collection of essential binaries you’ll need during CTFs or pentest engagements, including:

  • Custom exploit code in C
  • All the Potato privilege escalation binaries (.exe and PowerShell)
  • Privilege escalation enumeration scripts
  • Essential PowerShell tooling (e.g., SharpHound)
  • Pivoting agents, static builds of netcat, nmap, and more

In short: almost every deliverable binary you might need — all in one place.

🔜 More binaries will be added soon, along with a feature to update specific binaries to their latest versions automatically.


📦 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

📥 Install Pre-Bundled Binaries

You can extract and install a curated collection of binaries needed for CTFs and pentests (e.g., Potato exploits, privilege escalation scripts, SharpHound, pivoting agents, static netcat/nmap, etc.).

Simply specify an output directory with -i:

fuzzy-httpserver -i /opt/redteam-tools

⚠️ Note: You must have 7z installed. If missing, run:

sudo apt install p7zip-full

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)
-i, --install Install essential binaries (extracted from transfers.7z) into given path

📨 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:


✨ Contributions Welcome

Want to improve it? Found a bug? PRs and issues are welcome!

Metadata

Release files for fuzzy-httpserver 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fuzzy-httpserver 1.5.0
File Size Uploaded
fuzzy_httpserver-1.5.0.tar.gz 6.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fuzzy-httpserver 1.5.0
File Interpreter ABI Platform
fuzzy_httpserver-1.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.9 kB

Release files / fuzzy_httpserver-1.5.0.tar.gz

Download URL fuzzy_httpserver-1.5.0.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f76d9f422cd000f6454910dbdf0595804e5ead4a979f3ed24578f914f054cea4
BLAKE2b-256 checksum
How to use checksums
f97f810e652fe75e9c6ee18e68e6e8e53f3b13a4766a82b4816b1b1f2bf0532f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / fuzzy_httpserver-1.5.0-py3-none-any.whl

Download URL fuzzy_httpserver-1.5.0-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b322b5bccf2b8a8d2ecd42b995d23f556ad8bdfd1e73b7a465dd6b9880162be
BLAKE2b-256 checksum
How to use checksums
44c648ee7c4305eed3c9c011a82f95ea050f454d51f5911e03cdcade34563627
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

1.5.0 This release

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page