hunt-host-header
Makes your agent look for security flaws in the Host header. It helps prevent attacks that exploit how the server handles this header.
What it does
This tool helps find security flaws on websites. It checks if a site can be tricked into thinking a fake address is the real one, which could lead to account theft or other vulnerabilities.
When to use it
- ✓When testing a website's security with permission.
- ✓To understand how 'Host Header Injection' flaws work.
- ✓When checking if a site correctly protects sensitive information like password reset links.
Example of what to ask your AI
“Check if website X is vulnerable to 'Host Header Injection' attacks on the password reset function.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool sends modified requests to the website, changing the 'Host' header to simulate fake addresses. It observes if the website incorrectly uses this information to generate links or process requests.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill hunt-host-headerOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-host-header/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
⚠️ AUTHORIZED USE ONLY This skill is for educational purposes or authorized security assessments only. You must have explicit, written permission from the system owner before using this tool. Misuse of this tool is illegal and strictly prohibited.
Mandatory confirmation gate Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
- Ask the user to state the exact target URL, IP, account, or resource.
- Ask the user to confirm written authorization and the permitted scope.
- Show the exact command(s) and explain their expected effect.
- Wait for explicit confirmation in the current conversation.
Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
HUNT-HOST-HEADER — Host Header Injection
Grounding / Provenance
This skill is built from the public Host-header attack literature, not invented payloads. Cite the technique source in your report, never a fabricated ID:
- Password-reset poisoning class — the canonical write-up is Skelet's/Detectify-era
"Practical HTTP Host header attacks" (the Django
request.get_host()→ password-reset-link case). Many frameworks built the reset URL from the request Host with noALLOWED_HOSTS-style allowlist. Cite the framework + the reflected-Host behaviour you actually observed. - Web cache poisoning via unkeyed Host / X-Forwarded-Host — PortSwigger Research, James Kettle, "Practical Web Cache Poisoning" (2018) and "Web Cache Entanglement" (2020). These define unkeyed-input poisoning, which is the mechanism behind X-Forwarded-Host poisoning.
- Routing-based SSRF — PortSwigger Research, "Cracking the lens" / routing-based SSRF (Host header steers the front-end's upstream selection).
When you write the report, name the exact behaviour you reproduced (reflected header, cache HIT on a fresh key, OOB hit from your Collaborator). Do not copy a CVE or H1 ID you have not verified — a missing citation is always better than a wrong one.
Crown Jewel Targets
Host header injection that reaches password reset links = Critical (ATO for any user).
Highest-value chains:
- Password reset poisoning → ATO — server builds the reset link from the request Host;
attacker sets
Host: evil.com; the victim's reset email points the token at the attacker → token captured on click → full ATO. Pre-account-takeover variant: even the victim requesting their own reset leaks the token to evil.com. - Web cache poisoning via unkeyed Host — a CDN/reverse proxy caches a response that reflects
an attacker
X-Forwarded-Hostinto an absolute URL (script src, link, redirect) → poisoned entry served to every later visitor on that cache key → mass XSS/redirect/CSP bypass. - Routing-based SSRF — the front-end uses the Host header itself to pick the upstream;
Host: 169.254.169.254(or an internal hostname) makes it forward your request to that target → cloud metadata / internal admin panels. - Path-override SSRF / ACL bypass — IIS/ASP.NET/Spring honour
X-Original-URL/X-Rewrite-URLto override the routed path → reach/adminor internal endpoints the edge ACL thought it blocked. (Different layer from routing SSRF — see Phase 3.) - OAuth/OIDC poisoning — Host drives
redirect_urior the OIDCissuer/ discovery doc → auth-code or token theft → ATO.
Attack Surface Signals
Any password reset / forgot-password / email-verification / invite endpoint
Any app behind CDN/reverse proxy (Cloudflare, Varnish, Fastly, Akamai, Nginx, HAProxy)
OAuth/OIDC authorization + /.well-known/openid-configuration endpoints
Absolute URLs constructed from request Host (set-password links, share links, webhooks)
Email-sending endpoints (transactional mail, notifications)
Reverse proxies that may route by Host (k8s ingress, service mesh, internal forward proxies)
Dangerous header candidates (unkeyed / trusted inputs):
Host X-Forwarded-Host X-Host
X-Forwarded-Server X-HTTP-Host-Override Forwarded
X-Original-URL X-Rewrite-URL X-Override-URL (path-override class)
Step-by-Step Hunting Methodology
Always test against your own registered test account. Never request another user's reset.
Phase 1 — Password Reset Poisoning
# 1a. Override Host directly
…
FAQ
What is 'Host Header Injection'?
It's a type of attack where an attacker manipulates the 'Host' header of an HTTP request to trick the web server into believing the request came from a different domain.
Why is this dangerous?
It can lead to account takeover (if password reset links are poisoned), malicious code execution (XSS), or access to internal systems (SSRF).
Do I need permission to use this tool?
Yes, it is crucial to have explicit, written permission from the system owner before using this tool, as it can be used for security testing.
Details
Popularity
- GitHub stars
- 48k
- Ranking position
- #3262
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
django-security
Helps your agent implement security practices in Django applications. It focuses on authentication, authorization, and prevention against common attacks, ensuring more secure code.
affaan-m/ECC
laravel-security
Helps your agent secure Laravel applications against threats. Implements security practices for authentication, authorization, and common attack prevention.
affaan-m/ECC
module-regression
Helps your agent manage changes in large projects. Ensures code changes in one part don't break other parts.
affaan-m/ECC