Skip to content

A lightweight Python HTTP server with fuzzy filename matching and automatic fallback to directory listing.

Notifications You must be signed in to change notification settings

PakCyberbot/fuzzy-httpserver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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


✨ Contributions Welcome

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

About

A lightweight Python HTTP server with fuzzy filename matching and automatic fallback to directory listing.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages