web-pentest
Skill0 starsChanged 3 months agoMITView on GitHub
Authorized web pentest: recon, proof-based exploits, report.
11 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- mrhlaingbwardev/agentic-hacking-skillstheir own version, first seen Nov 8, 2026
- briiirussell/cybersecurity-skillstheir own version, first seen Nov 1, 2026
- hassan-algo/open-sesametheir own version, first seen Oct 25, 2026
- ferr079/claude-code-cybersec-skillstheir own version, first seen Oct 12, 2026
- zsjstart/web-pentest-skilltheir own version, first seen Oct 9, 2026
- hypnguyen1209/offensive-claudetheir own version, first seen Sep 21, 2026
Used with
Projects with it also use privesc-linux, threat-hunting and 2 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
jessefmooreSkillprivesc-linux
Linux privilege escalation and persistence — SUID/SGID abuse, kernel exploits, capabilities, sudo misconfig, cron jobs, writable paths, library hijacking, credential hunting, container escape, LXD/LXC, systemd timers, PAM skeleton key, polkit, MOTD, udev, git hooks, shell profile, NetworkManager, package manager hooks, at jobs, XDG autostart, LKM rootkit
Also in 3 projects that use this
allanninalSkillthreat-hunting
Hunt threats using Sigma detection rules and security analysis techniques. Use when investigating security incidents, creating detection rules, or analyzing suspicious activity.
Also in 4 projects that use this
TheWatcher01Skillosint-recon
Reconnaissance passive sur un domaine : certificats, DNS, headers HTTP, stack technique. Utiliser pour l'analyse OSINT d'un domaine cible.
Also in 3 projects that use this
jord0-cmdSkillRECON
Deep technical research that persists. Use when: exploring new technologies, investigating frameworks, comparative analysis of tools, understanding complex systems, or any research task that should be saved for future reference. Invokes Claude's built-in research agent and auto-saves results to a knowledge base for retrieval across sessions.
Also in 3 projects that use this
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- thesawdawg/agent-skills★ 254% same
Wrote their own version · 10
- briiirussell/cybersecurity-skills★ 489same name
- hypnguyen1209/offensive-claude★ 401same name
- mrhlaingbwardev/agentic-hacking-skills★ 347same name
- hassan-algo/open-sesame★ 89same name
- samklee1/web-pentest★ 4same name
- hackingyseguridad/IA★ 3same name
- jessefmoore/offensive-claude-code★ 2same name
- zsjstart/web-pentest-skill★ 1same name
- ferr079/claude-code-cybersec-skills★ 0same name
- imMamdouhaboammar/cybersecurity-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository87 other files it gives its agents.
- hermes/AGENTS.mdAGENTS.md
- prime/AGENTS.mdAGENTS.md
- apple-notesSkill
- apple-remindersSkill
- findmySkill
- imessageSkill
- vulnerability-triageSkill
- claude-codeSkill
- codexSkill
- computer-useSkill
- hermes-agentSkill
- merge-reconcilerSkill
- opencodeSkill
- architecture-diagramSkill
- ascii-artSkill
- ascii-videoSkill
- baoyu-infographicSkill
- claude-designSkill
- comfyuiSkill
- design-mdSkill
- excalidrawSkill
- humanizerSkill
- manim-videoSkill
- p5jsSkill
- popular-web-designsSkill
- pretextSkill
- sketchSkill
- songwriting-and-ai-musicSkill
- touchdesigner-mcpSkill
- sdlc-reviewSkill
- email-inbox-triageSkill
- himalayaSkill
- codebase-inspectionSkill
- github-authSkill
- github-code-reviewSkill
- github-issuesSkill
- github-issue-to-prSkill
- github-pr-workflowSkill
- github-repo-managementSkill
- gif-searchSkill
- songseeSkill
- youtube-contentSkill
- huggingface-hubSkill
- obsidianSkill
- airtableSkill
- boxSkill
- document-to-action-itemsSkill
- docxSkill
- google-workspaceSkill
- mapsSkill
- meeting-action-itemsSkill
- nano-pdfSkill
- notionSkill
- ocr-and-documentsSkill
- pdfSkill
- powerpointSkill
- product-price-monitorSkill
- session-librarianSkill
- teams-meeting-pipelineSkill
- weekly-review-planningSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 7 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 35
No exploit, no report — every finding requires reproducible evidence.
- Very specific: line 47
Authorization gate: Before the first active scan in a session, you MUST confirm with the user, in writing, that they own or have written …
- Very specific: line 48
MUST confirm with the user, in writing, that they own or have written authorization to test the target.
- Distinctive: line 58
STOP and confirm with the user before following.
- Distinctive: line 60
No production systems without paper: If the user hasn't told you "yes, prod is in scope and I have written sign-off," assume not.
- Very specific: line 64
Cloud metadata is off by default: Do not probe 169.254.169.254, metadata.google.internal, 100.100.100.200, [fd00:ec2::254], or equivalent …
- Very specific: line 84
If the engagement is sensitive, set auxiliary.title_generation.enabled: false in ~/.thot/config.yaml for the session.
- Very specific: line 87
Rate limit yourself: Default 200ms between active requests against any single host.
- Distinctive: line 100
Before any scanning happens, create the engagement directory and authorization acknowledgement.
- Distinctive: line 143
If you have read access to the application source:
- Very specific: line 175
Use -T3 (default), not -T4/-T5.
- Distinctive: line 188
Use the developer tools network panel via browser tool to capture XHR/fetch calls.
- Very specific: line 210
Use delegate_task with these focused subagents (parallel where possible):
- Very specific: line 233
Only run a sub-agent per class where the analysis queue has actionable entries (identified or partial).
- Distinctive: line 320
If the engagement needs any of these, escalate to a professional pentester.
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Web Application Penetration Testing
A phased pentesting workflow for running web applications. Adapted from Shannon's pipeline (Keygraph, AGPL — concepts only, no code borrowed). Built around three rules:
- No exploit, no report — every finding requires reproducible evidence.
- Bounded scope — every active request goes against a target the operator pre-declared. Off-scope hosts are refused.
- Bypass exhaustion before false-positive dismissal — a "blocked" payload is not a clean bill of health until you've tried the bypass set.
⚠️ Hard Guardrails — Read Before Every Engagement
Violating any of these invalidates the engagement and may be illegal.
- Authorization gate. Before the first active scan in a session, you
MUST confirm with the user, in writing, that they own or have written
authorization to test the target. Record the acknowledgement in
engagement/authorization.md(see template). No acknowledgement → no active scanning. Reading public pages withcurlis fine; sending payloads is not. - Scope allowlist. Maintain
engagement/scope.txt— one hostname or CIDR per line. Everynmap,curl,whatweb, browser navigation, or payload-bearing request MUST be against an entry in scope. If a target redirects you off-scope (3xx to a different host, a link in HTML), STOP and confirm with the user before following. - No production systems without paper. If the user hasn't told you "yes, prod is in scope and I have written sign-off," assume not. Default targets are staging, local docker, dedicated test instances.
- Cloud metadata is off by default. Do not probe
169.254.169.254,metadata.google.internal,100.100.100.200,[fd00:ec2::254], or equivalent unless the engagement explicitly includes SSRF-to-metadata as a goal AND the target is one you control. The agent's browser tool can reach these from inside your own infrastructure — don't. - Destructive payloads need approval. SQLi payloads that DROP/DELETE,
filesystem-write SSTI, command injection with
rm/shutdown/mkfs, anything that mutates beyond a single test row → ASK FIRST. Theapproval.pysystem catches some; don't rely on it alone. - Aux-client leakage risk (Hermes-specific). This skill produces
sessions full of SQLi/XSS/RCE payloads, captured credentials, JWT
tokens. Hermes' compression and title-generation paths replay history
through the auxiliary client (often the main model). Anything sensitive
you write to the conversation can leave the box on the next compress.
Mitigation:
- Redact captured tokens/credentials to the LAST 6 CHARS before logging
them in any message. Full values go to
engagement/evidence/files, never into chat history. - If the engagement is sensitive, set
auxiliary.title_generation.enabled: falsein~/.thot/config.yamlfor the session.
- Redact captured tokens/credentials to the LAST 6 CHARS before logging
them in any message. Full values go to
- Rate limit yourself. Default 200ms between active requests against any single host. The recon-scan.sh script enforces this. Don't bypass it without operator approval.
- Authority of the report. This skill produces a security assessment, not a "PASS." Even a clean run is "no exploitable issues FOUND in scope X within time T using methods Y" — not "the application is secure." Mirror that language in the report.
Phase 0: Engagement Setup
Before any scanning happens, create the engagement directory and authorization acknowledgement.
ENGAGEMENT=engagement-$(date +%Y%m%d-%H%M%S)
mkdir -p "$ENGAGEMENT"/{evidence,findings,reports}
cd "$ENGAGEMENT"- Ask the user (verbatim):
"Confirm: (a) the target URL is [X], (b) you own this application or have written authorization to test it, and (c) the engagement may run for up to [N] hours starting now. Reply 'authorized' to proceed."
- Wait for explicit
authorizedresponse. Any other answer means STOP. - Record authorization to
engagement/authorization.mdusing the template intemplates/authorization.md. Include:- Target URL(s) and IP(s)
- Authorization basis (ownership / written authz from $name)
- Engagement window
- Out-of-scope items (production, third-party services, etc.)
- Operator name (the user driving this session)
- Build scope.txt:
localhost 127.0.0.1 staging.example.com 192.168.1.0/24 # internal lab only, with operator OK - Read
references/scope-enforcement.mdbefore issuing the first active request — that doc has the host-extraction rules you apply to every command/URL before it goes out.
Phase 1: Pre-Recon (Code Analysis, optional)
Skip if no source access (black-box engagement).
If you have read access to the application source:
- Map the architecture — framework, routing, middleware stack
- Inventory sinks — every
execute(,os.system(,eval(, template render, file read/write, redirect target - Map auth — session cookie vs JWT, OAuth flows, password reset, privileged endpoints
- Identify trust boundaries — what's authenticated, what's not,
what comes from
request.* - Backward taint from each sink to a request source. Early-terminate
when proper sanitization is found (parameterized queries, allowlists,
shlex.quote, well-known escapers).
Output: evidence/pre-recon.md — architecture map, sink inventory,
suspected vulnerable code paths.
This is OFFLINE work. No traffic to the target.
Phase 2: Recon (Live, Read-Only)
Maps the attack surface. All requests are GETs of public pages, no payloads yet. Still scope-bounded.
- Verify scope. Resolve every target hostname → IP. Confirm IPs are in scope (avoids the "DNS points somewhere unexpected" trap).
- Network surface (only if scope permits port scanning):
Usenmap -sT -T3 --top-ports 100 -oN evidence/nmap.txt $TARGET-T3(default), not-T4/-T5. Stealthier and avoids tripping IDS/IPS in shared environments. - Tech fingerprint:
whatweb -v $TARGET_URL > evidence/whatweb.txt curl -sIk $TARGET_URL > evidence/headers.txt - Endpoint discovery:
- Crawl the app with the browser tool (
browser_navigate,browser_get_images, follow links). - Inspect
robots.txt,sitemap.xml,.well-known/*. - Use the developer tools network panel via browser tool to capture XHR/fetch calls.
- Crawl the app with the browser tool (
- Auth surface: Identify login, registration, password reset, session cookie names, token formats. Do NOT send credentials yet — just observe.
- Correlate with pre-recon (if you have source). For each
evidence/pre-recon.mdfinding, mark whether the live surface confirms it's reachable.
Output: evidence/recon.md — endpoints, technologies, auth model,
input vectors.
Phase 3: Vulnerability Analysis
One delegate_task per vulnerability class. Each agent reads
evidence/recon.md (+ evidence/pre-recon.md if present), produces
findings/<class>-queue.json using templates/exploitation-queue.json.
Use delegate_task with these focused subagents (parallel where possible):
| Class | Goal | Reference |
injection | SQLi, command, path traversal, SSTI, LFI/RFI, deserialization | references/vuln-taxonomy.md (slot types) |
xss | Reflected, stored, DOM-based | references/vuln-taxonomy.md (render contexts) |
auth | Login bypass, JWT confusion, session fixation, OAuth flaws | references/exploitation-techniques.md |
authz | IDOR, vertical/horizontal escalation, business logic | references/exploitation-techniques.md |
ssrf | Internal reachability, metadata, protocol smuggling | Skip metadata unless explicitly authorized |
infra | Misconfig, info disclosure, default creds, exposed admin | references/exploitation-techniques.md |
Each queue entry has: id, vuln class, source (file:line if known),
endpoint, parameter, slot type, suspected defense, verdict
(identified / partial / confirmed / critical), witness payload,
confidence (0-1), notes.
The analysis phase doesn't send malicious payloads yet — it stages them. The exploitation phase actually fires them.
Phase 4: Exploitation (Proof-Based, Conditional)
Only run a sub-agent per class where the analysis queue has actionable
entries (identified or partial).
For each candidate:
- Pre-send check — host in scope? auth gate satisfied? payload approved if destructive?
- Send the witness payload — minimal proof. SQLi:
' AND 1=1--then' AND 1=2--. XSS: a benign marker like<svg/onload=console.log("HERMES-PENTEST-XSS")>. Neveralert(1)in stored XSS — it'll fire for other users in shared environments. - Verify the witness fires — for blind injection, use a sleep
probe (
SLEEP(5)) and time the response. For SSRF, use a tester-controlled callback host you own (NOT a public service like webhook.site for sensitive engagements — exfil paths). - Promote level:
- L1 Identified — pattern matched, no behavior change
- L2 Partial — sink reached, but defense in place
- L3 Confirmed — payload changed app behavior in observable way
- L4 Critical — data extracted, code executed, access escalated
- Bypass exhaustion before classifying as FP. For each candidate
that blocks: try at least the bypass set in
references/bypass-techniques.mdfor that class. Only after the set is exhausted may you writeverdict: false_positive. - Record evidence for every L3/L4:
- Full request (method, URL, headers, body)
- Response (status, headers, relevant body excerpt)
- Reproducer command (curl one-liner)
- Impact statement
Output: findings/exploitation-evidence.md
Redact in evidence files:
- Any captured credentials/tokens → last 6 chars only in chat;
full value to
findings/secrets-vault.md(gitignored). - Other users' PII → redact.
- Your test credentials → fine to keep.
Phase 5: Reporting
Generate the final report using templates/pentest-report.md. Sections:
- Executive summary
- Engagement scope (from
engagement/scope.txt) - Authorization (from
engagement/authorization.md) - Findings (L3/L4 only — proof-required). Per finding:
- Title, severity (CVSS 3.1), CWE
- Affected endpoint(s)
- Proof (request + response excerpt)
- Reproduction steps
- Impact
- Remediation
- Not-exploited candidates (L1/L2 with notes on what blocked them)
- Out-of-scope observations
- Methodology / tools used
- Limitations and what was NOT tested
Severity policy: CVSS only for L3/L4. L1/L2 are "candidates pending verification" — don't assign CVSS to unverified findings.
When to Stop
- The user revokes authorization.
- A candidate finding clearly impacts production data and you don't have approval for destructive testing — STOP and ask.
- The target starts returning 503/429 storms — back off, reconvene with the operator.
- You discover something outside the contracted scope (e.g. an exposed customer database while testing an unrelated endpoint). STOP, document, report to the operator. Do not pivot without explicit approval — that pivot is what makes pentesting illegal.
What This Skill Does NOT Cover
- Network-layer pentesting beyond port scanning (no Metasploit, Cobalt Strike, AD attacks, network protocol fuzzing).
- Reverse engineering / binary analysis (see issue #383).
- Source-only static analysis (see issue #382).
- Active social engineering / phishing.
- Anything against systems the operator hasn't pre-authorized.
If the engagement needs any of these, escalate to a professional pentester. This skill complements professional pentesting; it does not replace it.
Further Reading
references/scope-enforcement.md— how to bound every active requestreferences/vuln-taxonomy.md— slot types, render contexts, OWASP mapreferences/exploitation-techniques.md— per-class payload patternsreferences/bypass-techniques.md— common WAF/filter bypassestemplates/authorization.md— engagement authorization templatetemplates/pentest-report.md— final report templatetemplates/exploitation-queue.json— per-class finding queue schemascripts/recon-scan.sh— rate-limited nmap+whatweb+headers wrapper
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

