Skip to main content

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

🚀 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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fuzzy_httpserver-1.5.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fuzzy_httpserver-1.5.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file fuzzy_httpserver-1.5.0.tar.gz.

File metadata

  • Download URL: fuzzy_httpserver-1.5.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fuzzy_httpserver-1.5.0.tar.gz
Algorithm Hash digest
SHA256 f76d9f422cd000f6454910dbdf0595804e5ead4a979f3ed24578f914f054cea4
MD5 58d3b5220c1f3e897571bf97aba1bbdf
BLAKE2b-256 f97f810e652fe75e9c6ee18e68e6e8e53f3b13a4766a82b4816b1b1f2bf0532f

See more details on using hashes here.

File details

Details for the file fuzzy_httpserver-1.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fuzzy_httpserver-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b322b5bccf2b8a8d2ecd42b995d23f556ad8bdfd1e73b7a465dd6b9880162be
MD5 6e8667c6f4bd98966ce791933c68e56c
BLAKE2b-256 44c648ee7c4305eed3c9c011a82f95ea050f454d51f5911e03cdcade34563627

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page