caddy-troll
is a caddy v2 plugin that allows you to mess with people who may be scanning your server for vulnerabilities. It allows you to send back malformed/confusing responses, spoof your server headers, redirect randomly, and even send back responses that may crash naive clients! Use at your own risk!
This repo uses nix + direnv to easily and automatically install dependencies and run caddy with this plugin enabled in an easy way. Once both nix and direnv are installed, run direnv allow
in the root of the project to install all the required dependencies.
Use xcaddy to build, or use nix!
xcaddy build --output ./caddy --with github.com/jpetrucciani/caddy-troll@main
caddy with caddy-troll already included:
TODO
build your own!
TODO
There are two ways to run the project.
- The
run
command which will rebuild the go caddy plugin when files are changed as well as run therun-troll
command. - The
run-troll
command which will run Caddy in watch mode on the Caddyfile in the conf directory.
The local server runs on localhost:6666
. Some of the hacks can be run in isolation using different routes. Here is the current list of supported routes.
Responds with the string "test" to check the server is running correctly.
Sets server headers designed to confused people by lying.
For example, we may set the Server header to "nginx" when this server is actually using Caddy.
Disables the random server header hack
Disables other hacks so only the gzip hack is applied
Disables other hacks so only the redirect hack is applied
Disables other hacks so only the xml hack is applied
Disables other hacks so only the naughty strings hack is applied