Agent skill

Hunt Graphql

by sickn33 in sickn33/agentic-awesome-skills

Hunting skill for graphql vulnerabilities. An agent skill from sickn33/agentic-awesome-skills.

MITAuto-check passedBackend & APIs

Install Hunt Graphql

skills CLI
$ npx skills add sickn33/agentic-awesome-skills --skill hunt-graphql -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sickn33/agentic-awesome-skills hunt-graphql --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hunt-graphql .claude/skills/hunt-graphql && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
hunt-graphql
GitHub stars
47k
Used in
1 other repo
Token cost
~5.7k tokens
SKILL.md length
2,324 words
Files
1
Skills in repo
1,354
Repo updated
First seen
Licence
MIT

At a glance

Hunting skill for graphql vulnerabilities. An agent skill from sickn33/agentic-awesome-skills.

  • Works in 10 steps: Discover the endpoint — spider JS… → Test introspection — send the full… → Map the full schema — use InQL (Burp… → …
  • Tasks that involve GraphQL
  • SKILL.md covers Crown Jewel Targets, Attack Surface Signals, Step-by-Step Hunting Methodology and Payload & Detection Patterns, plus 8 more sections
  • Calls curl, jq and python3; needs ADMIN_TOKEN and ATTACKER_TOKEN

What it does

Hunt Graphql is an agent skill from sickn33/agentic-awesome-skills. Hunting skill for graphql vulnerabilities.

Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires explicit written authorization for a target scope plus the relevant testing tools for this technique. Docs-only; helper scripts and commands not…

It sits in Backend & APIs, covering GraphQL. It works with GraphQL. The repository describes itself as: AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400+ agentic skills. Includes… The licence is MIT.

When your agent uses it

  • Tasks that involve GraphQL

Example prompts

  • “/hunt-graphql”

Requirements

  • Python 3
  • A credential in YOUR_TOKEN
  • A credential in ADMIN_TOKEN
  • Compatibility (from SKILL.md): Requires explicit written authorization for a target scope plus the relevant testing tools for this technique. Docs-only; helper scripts and commands not bundled.

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. Discover the endpoint — spider JS bundles, check /graphql, /api/graphql, review Burp passive scan hits for application/json POST with…
  2. Test introspection — send the full introspection query. Even if blocked, try field-level enumeration
  3. Map the full schema — use InQL (Burp extension) or graphql-voyager to visualize relationships. Specifically look for
  4. Identify REST/GraphQL overlap — document every resource that can be modified via BOTH REST and GraphQL. These dual-write surfaces are your…
  5. Test authorization boundaries per mutation — replay mutations as lower-privilege users. Does the server enforce the same authz as the…
  6. Hunt cross-API state desync — find sequences where
  7. Test for persistent privilege after role/membership changes — remove a user via REST, then call the corresponding GraphQL mutation for…
  8. Probe for IDOR in node IDs — GraphQL global IDs often encode object type + ID. Swap IDs across object boundaries and across account…
  9. Check batch query abuse — send arrays of operations to bypass rate limiting or amplify enumeration.
  10. Document the exact reproduction chain — for RC bugs, time-based steps must be reproducible deterministically.

What it can do on your machine

Read from SKILL.md and the folder at commit ec02547. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • jq
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • hackerone.com
    • about.gitlab.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ADMIN_TOKEN
    • ATTACKER_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires explicit written authorization for a target scope plus the relevant testing tools for this technique. Docs-only; helper scripts and commands not bundled.

    From compatibility in the SKILL.md frontmatter.

Context cost

Hunt Graphql loads about 5.7k tokens when it runs. Until then it costs about 14 tokens; SKILL.md has 2,324 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~14
When it runs · the whole SKILL.md, loaded when a task matches
~5.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sickn33/agentic-awesome-skills at commit ec02547, republished under its MIT licence (© sickn33). 2,324 words, ~5,662 tokens.

Download SKILL.mdSave it as .claude/skills/hunt-graphql/SKILL.md (or your agent's skills folder).
name
hunt-graphql
description
Hunting skill for graphql vulnerabilities.
compatibility
Requires explicit written authorization for a target scope plus the relevant testing tools for this technique. Docs-only; helper scripts and commands not bundled.
category
security
risk
offensive
source
https://github.com/elementalsouls/Claude-BugHunter
source_repo
elementalsouls/Claude-BugHunter
source_type
community
date_added
2026-09-20
license
MIT
license_source
https://github.com/elementalsouls/Claude-BugHunter/blob/main/LICENSE
sources
hackerone_public, github, gitlab_security
report_count
26

⚠️ 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:

  1. Ask the user to state the exact target URL, IP, account, or resource.
  2. Ask the user to confirm written authorization and the permitted scope.
  3. Show the exact command(s) and explain their expected effect.
  4. 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.

Crown Jewel Targets

GraphQL vulnerabilities are high-value because the attack surface is both broad and deep — a single endpoint can expose entire data models, privilege escalation paths, and cross-API state confusion. Highest payouts occur in:

  • Platform APIs (GitHub, Shopify, Stripe-tier targets) where GraphQL mutations interact with REST APIs managing the same resources
  • Race conditions between GraphQL mutations and REST endpoints where state synchronization is non-atomic — these hit medium-to-high severity reliably
  • Authorization persistence bugs where team/org/repo membership state is controlled by one API but readable/writable by another
  • B2B SaaS platforms where one tenant affecting another via schema traversal = critical
  • Internal admin GraphQL endpoints accidentally exposed to lower-privilege users

The GitHub reports demonstrate the crown jewel pattern: privilege that should be revoked persists because two APIs disagree on ground truth.


Attack Surface Signals

URL Patterns:

/graphql
/api/graphql
/v1/graphql
/query
/gql
/graph
/api/v2/graphql
/internal/graphql

Response Headers:

Content-Type: application/json  (with query body)
X-Request-Id + no REST-style path params = likely GraphQL

JavaScript Source Patterns:

js
// grep for these in JS bundles
"query {"
"mutation {"
"__typename"
"apollo"
"ApolloClient"
"graphql-tag"
"gql`"
"operationName"
"GRAPHQL_URI"

Tech Stack Signals:

  • Apollo Server/Client in JS bundles
  • Relay in React apps
  • graphene or strawberry (Python), graphql-ruby, gqlgen (Go), Lighthouse (Laravel)
  • POST requests with {"query": "..."} body shape in Burp history
  • __schema or __type in any response = confirmed GraphQL

Recon Sources:

  • github.com search: "graphql" site:target.com
  • Wayback Machine for /graphql paths
  • JS bundle scanning with LinkFinder or getallurls

Step-by-Step Hunting Methodology

  1. Discover the endpoint — spider JS bundles, check /graphql, /api/graphql, review Burp passive scan hits for application/json POST with query fields

  2. Test introspection — send the full introspection query. Even if blocked, try field-level enumeration:

    graphql
    { __typename }

    If that returns, introspection may be partially blocked but the schema is discoverable

  3. Map the full schema — use InQL (Burp extension) or graphql-voyager to visualize relationships. Specifically look for:

    • Mutations that modify ownership, permissions, or membership
    • Mutations that mirror REST API functionality
  4. Identify REST/GraphQL overlap — document every resource that can be modified via BOTH REST and GraphQL. These dual-write surfaces are your RC targets.

  5. Test authorization boundaries per mutation — replay mutations as lower-privilege users. Does the server enforce the same authz as the equivalent REST call?

  6. Hunt cross-API state desync — find sequences where:

    • REST action should revoke access
    • GraphQL mutation re-grants or preserves it
    • Test the ordering: REST first → GraphQL → check state; then GraphQL first → REST → check state
  7. Test for persistent privilege after role/membership changes — remove a user via REST, then call the corresponding GraphQL mutation for that resource. Query current state via both APIs and compare.

  8. Probe for IDOR in node IDs — GraphQL global IDs often encode object type + ID. Swap IDs across object boundaries and across account contexts.

  9. Check batch query abuse — send arrays of operations to bypass rate limiting or amplify enumeration.

  10. Document the exact reproduction chain — for RC bugs, time-based steps must be reproducible deterministically.


Payload & Detection Patterns

Full Introspection Query:

graphql
{
  __schema {
    types {
      name
      fields {
        name
        type {
          name
          kind
        }
      }
    }
  }
}

Minimal Introspection Probe (bypass attempt):

graphql
{ __typename }

curl introspection test:

bash
curl -s -X POST https://target.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"query":"{ __schema { queryType { name } } }"}' | jq .

Field suggestion probe (bypass blind introspection blocks):

graphql
{ unknownField }

If response returns "Did you mean: [realFieldName]?" — schema is enumerable despite introspection being disabled.

Batch query amplification:

json
[
  {"query": "{ user(id: 1) { email } }"},
  {"query": "{ user(id: 2) { email } }"},
  {"query": "{ user(id: 3) { email } }"}
]

Subscription hijacking (cross-user channel access):

graphql
subscription { messageAdded(channelId: "OTHER_USERS_CHANNEL") { content sender { email } } }

If subscriptions lack per-user scoping, an attacker can receive real-time events from another user's channel or conversation.

Multi-code OTP/2FA brute-force via alias batching:

graphql
mutation { 
  v1: verifyOtp(code:"000001"){token} 
  v2: verifyOtp(code:"000002"){token}
  v3: verifyOtp(code:"000003"){token}
}

A single GraphQL request aliases the same mutation with different OTP codes. Combined with parallel HTTP, this defeats per-request rate limiting and compresses brute-force attempts into fewer network round-trips.

RC desync test pattern (pseudo-sequence):

bash
# Step 1: Grant access via REST
curl -X PUT https://api.target.com/repos/ORG/REPO/teams/TEAM \
  -H "Authorization: token ADMIN_TOKEN" \
  -d '{"permission":"admin"}'

# Step 2: Revoke via REST  
curl -X DELETE https://api.target.com/repos/ORG/REPO/teams/TEAM \
  -H "Authorization: token ADMIN_TOKEN"

# Step 3: Re-assert via GraphQL mutation
curl -X POST https://api.target.com/graphql \
  -H "Authorization: bearer ATTACKER_TOKEN" \
  -d '{"query":"mutation { updateTeamsRepository(input: {repositoryId: \"REPO_ID\", teamId: \"TEAM_ID\", permission: ADMIN}) { clientMutationId } }"}'

# Step 4: Verify persistent access
curl https://api.target.com/repos/ORG/REPO/teams \
  -H "Authorization: token ADMIN_TOKEN"

Grep for GraphQL in JS bundles:

bash
grep -Eo '(query|mutation|subscription)\s+\w+\s*[\({]' bundle.js
grep -Eo '"(/[a-z0-9/_-]*graphql[a-z0-9/_-]*)"' bundle.js

GraphQL introspection & audit tooling:

bash
# InQL (Burp extension) — visualize GraphQL schema and relationships
inql -t https://target/graphql --generate-queries

# Clairvoyance — brute-force field names when introspection is disabled
python3 clairvoyance.py -u https://target/graphql -H "Authorization: Bearer TOKEN" -w wordlist.txt -o schema.json

# GraphQL Cop — scan for common misconfigurations (introspection enabled, no depth limits, etc.)
graphql-cop -t https://target/graphql

Common Root Causes

  1. Dual-write without atomic locking — developers implement the same resource modification in both REST and GraphQL independently. Neither system is aware the other exists for that resource. State updates aren't serialized or compared.

  2. Inconsistent authorization middleware — REST endpoints go through one auth layer (e.g., middleware chain), GraphQL resolvers go through a different resolver-level check. The same action, different enforcement.

  3. GraphQL as "new REST" migration — teams add GraphQL mutations that mirror REST functionality without auditing the permission model. The GraphQL version is less mature and skips checks the REST version accumulated over time.

  4. Introspection left on in production — default framework settings (Apollo, Graphene) enable introspection in all environments. Developers forget to disable it, treating it as "just documentation."

  5. Node ID trust without re-authorization — GraphQL global IDs (base64("ObjectType:123")) are decoded and trusted without verifying the requesting user has access to that specific object.

  6. Mutation side effects not mirrored — when a REST action triggers cascading effects (e.g., team removal cascades to permission revocation), the GraphQL equivalent mutation doesn't trigger the same cascades.


Bypass Techniques

Defense: Introspection disabled

  • Bypass via field suggestion errors — send invalid field names and parse "did you mean X?" responses
  • Use clairvoyance to brute-force field names against a wordlist
  • Check JS bundles for hardcoded query strings that reveal the schema

Defense: Depth limiting

  • Fragment spread to increase effective depth without hitting the limiter:
graphql
fragment F on User { repos { teams { members { ...F } } } }

Defense: Rate limiting per IP

  • Use batch operations (array of queries in one POST)
  • Distribute across authenticated sessions

Defense: Auth checks on mutations

  • Test with tokens at different privilege tiers (viewer, member, admin)
  • Test unauthenticated — some mutations don't check session at all
  • Test with tokens from different organizations — multi-tenant IDOR

Defense: WAF blocking __schema

  • Alias the introspection field:
graphql
{ s: __schema { t: types { n: name } } }
  • Use HTTP parameter pollution or alternate content-type headers

Defense: Operation whitelisting (persisted queries)

  • Check if the server falls back to ad-hoc queries when the extensions.persistedQuery hash mismatches
  • Look for a non-whitelisted endpoint (dev, staging, internal proxy)
Alias batching: when it wins races vs when it doesn't

A common claim is "alias batching defeats per-user rate limits and double-spend protections." Whether this actually wins depends on the resolver execution model:

Resolver typeBehavior on aliased mutationsAlias batching wins races?
Multi-threaded / DataLoader-batched asyncAliases run concurrently, share state via batchYES — single HTTP request can amplify a race-target N times
Single-threaded / single-DB-connection per requestAliases run serially; first mutation closes the doorNO — combine with parallel HTTP
Distributed gateway (Apollo Federation)Sub-queries dispatched concurrently to subgraphsDepends on each subgraph

Verification example (single-threaded Flask + SQLite resolver):

  • 10 aliased redeemCoupon mutations in one request → only r1 succeeds, r2-r10 fail with already_redeemed. Alias batching alone is insufficient.
  • The same 10 mutations as 20 parallel HTTP POSTs → 20 successes ($2000 from a $100 coupon).

Operator rule: treat alias batching as a single-RTT recon primitive. For race-target exploitation, combine with hunt-race-condition's parallel-HTTP / Turbo Intruder single-packet attack. Verified in docs/verification/phase2e-jwt-graphql-race.md Test 11 vs Test 12.


Gate 0 Validation

  1. What can the attacker DO right now? Must be a concrete action: access data they shouldn't see, retain privileges after revocation, modify another user's resources. "The schema is visible" alone is not enough — what does the schema unlock?

  2. What does the victim LOSE? Must be a real asset: data confidentiality, access control integrity, org security guarantees. For the RC pattern: an org admin loses the guarantee that removing a team revokes all access. That's a security contract violation.

  3. Can it be reproduced in 10 minutes from scratch? For RC/desync bugs: write the exact curl sequence. Run it twice. If the privilege persists deterministically (not timing-dependent flakiness), it's reportable. If it requires millisecond timing luck, document the window and test on low-load times.


Show full SKILL.md (1,036 more words)Show less

Real Impact Examples

Scenario A — Covert Persistent Admin After Team Removal (GitHub-pattern) An attacker who legitimately had admin access to a repository via team membership gets removed by the org admin through the REST API. The attacker, before removal completes, calls the updateTeamsRepository GraphQL mutation to re-associate their team with admin permissions. The REST removal and GraphQL re-grant create a desync where the UI shows the team as removed, but the GraphQL state preserves admin-level access. The attacker retains covert write access to the repository indefinitely — pushing code, reading secrets in CI/CD — without appearing in the team's member list. This persists through org audits.

Scenario B — Covert Access via Repo Transfer Race (GitHub-pattern) An attacker with admin access initiates a repository transfer to another organization via the REST API. During or after the transfer, they invoke updateTeamsRepository on the now-transferred repo's ID. Because the GraphQL mutation doesn't validate current org ownership state consistently with the REST transfer event, the original attacker's team retains admin access on a repo now owned by a different organization. The receiving org has no visibility into this team association. The attacker can exfiltrate intellectual property from an org they have no legitimate relationship with.

Scenario C — Introspection as Reconnaissance Prerequisite (Shopify-pattern) On a platform where introspection is intentionally enabled (per-program rules), a hunter maps the full schema and discovers undocumented mutations for fulfillmentOrderMove and inventoryAdjust that are not surfaced in public docs. These mutations accept merchant IDs as arguments with no scoping validation visible in the schema. This recon directly enables targeted IDOR testing against merchant-to-merchant data isolation — the introspection itself is zero-severity, but it is the entry point to critical findings.


Disclosed Report Citations (Backfill +9 — 2019-2024)

The following real, verified bug-bounty / coordinated-disclosure cases extend this skill beyond the original 3 internal references. Each is a distinct GraphQL subclass with a working PoC documented in the cited writeup.

  1. HackerOne — Confidential user-data exposure via GraphQL User type (H1 #489146)

    • Subclass: broken field-level authorization (PII exposure)
    • Payload: direct user(id:...) query returning email, backup_codes_hash, facebook_user_id, account_recovery_phone_number_verified_at, totp_enabled
    • Root cause: backend migration introduced a GraphQL User type with no field-level authz; any authenticated user could enumerate PII of all users
    • Year: 2019 — $20,000, 1,028 upvotes
  2. HackerOne — DestroyLlmConversation mutation IDOR (Copilot pre-release) (H1 #2218334)

    • Subclass: mutation IDOR on AI/LLM feature
    • Payload: mutation { destroyLlmConversation(input:{id:"<victim_conv_id>"}) { … } }
    • Root cause: new LLM-conversation mutation shipped without authorization decorator; any user could destroy any conversation
    • Year: 2023 — caught pre-launch, no bounty (202 upvotes)
  3. Shopify — BillingDocumentDownload cross-tenant IDOR (H1 #2207248)

    • Subclass: IDOR on relay GID across tenants
    • Payload: query { billingDocumentDownload(id:"gid://shopify/BillingInvoice/<other_shop_id>") { url } }
    • Root cause: BillingInvoice resolver authorized the requester's shop but did not verify the invoice belonged to that shop
    • Year: 2024 — $5,000, 175 upvotes
  4. Shopify — Rate-limit bypass via negative cost (H1 #481518)

    • Subclass: query-cost-calc abuse (sibling pattern to alias batching)
    • Payload: query { products(first:-100) { … } } — negative first produced a negative query-cost contribution, refilling the leaky-bucket each call
    • Root cause: query-cost calculator did not floor at zero; negative values subtracted from the consumed budget
    • Year: 2019 — $1,000
  5. Stripe — Cross-tenant IDOR via UpdateAtlasApplicationPerson (H1 #1066203)

    • Subclass: cross-tenant IDOR on mutation
    • Payload: mutation { updateAtlasApplicationPerson(input:{personId:"<victim_person_id>", …}) } — adding/modifying a co-founder on another merchant's Stripe Atlas application
    • Root cause: mutation scoped only to "is admin of some merchant," not "is admin of the merchant owning this person"
    • Year: 2020 — bounty undisclosed (resolved)
  6. EXNESS — SSRF in GraphQL allTicks query (H1 #1864188)

    • Subclass: SSRF via GraphQL argument
    • Payload: query { allTicks(source:"http://169.254.169.254/latest/meta-data/") { … } } — source arg fed into a server-side HTTP client
    • Root cause: GraphQL field accepted a URL arg and dereferenced it without scheme/host allowlist
    • Year: 2023 — $3,000, 249 upvotes
  7. EXNESS — GraphQL attribute-batching DoS (H1 #2293642)

    • Subclass: DoS via batching / deep-attribute amplification on unauth endpoint
    • Payload: single HTTP request containing N batched operations, each requesting deeply nested attribute trees, sustained until origin OOM
    • Root cause: no query-depth, query-complexity, or batch-size limits on unauthenticated /graphql
    • Year: 2024 — bounty undisclosed (resolved)
  8. GitLab — Malicious-runner attach via runnerUpdate (CVE-2023-2478) (Advisory)

    • Subclass: auth bypass on mutation / project-scope missing
    • Payload: mutation { runnerUpdate(input:{id:"<attacker_runner_gid>", associatedProjects:["<victim_project_gid>"]}) }
    • Root cause: runnerUpdate did not check that the caller had Maintainer on the target project — any user could bind their malicious runner and intercept CI jobs (build secrets, code execution)
    • Year: 2023 — Critical, CVSS 9.6 (H1 bounty undisclosed; GitLab Critical-tier typically $20k–$35k)
  9. AS Watson — Auth bypass via unrestricted createAdminUser mutation (HackerOne blog)

    • Subclass: sensitive mutation reachable without authentication (introspection-aided discovery)
    • Payload: mutation { createAdminUser(input:{email:"x@x", role:"ADMIN", password:"…"}) { token } } invoked unauthenticated after schema enumeration via introspection
    • Root cause: schema lacked per-field authorization directives; createAdminUser exposed to public role
    • Year: 2023 — "Best Bug" prize at HackerOne Ambassador World Cup

  • hunt-idor — GraphQL node(id:) and global-relay-ID resolvers are IDOR factories: same shape, no scoping. Chain primitive: GraphQL introspection + IDOR (node() resolver) → cross-tenant data via base64-decoded type:id replay.
  • hunt-api-misconfig — GraphQL mutations are mass-assignment magnets: clients send full input objects, server merges. Chain primitive: GraphQL mutation + extra fields (isAdmin:true, verified:true) → mass assignment → role escalation.
  • hunt-business-logic — GraphQL aliases let you call the same mutation N times in one request, defeating per-request rate limits. Chain primitive: aliased mutation + business-logic flaw → coupon redeemed N times in single network round-trip.
  • hunt-race-condition — GraphQL batching collapses N mutations into one HTTP packet — perfect single-packet race vehicle. Chain primitive: GraphQL batch + race → atomic-update missing → double-spend balance.
  • security-arsenal — Load the GraphQL Payload Pack: introspection query, schema-suggestion error probe, alias amplification template, depth-bomb DoS payload, batch-attack template.
  • triage-validation — Apply the Body-Diff Rule: introspection alone is informational; require a concrete cross-tenant read or mutation-with-impact PoC before submitting.

When to Use

  • You have explicit, written authorization to assess the target in scope, and the task matches this skill's vulnerability class or technique within a bug-bounty or penetration-test engagement.
  • You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.

Limitations

  • Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.
  • Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.
  • Validate every finding (see triage-validation) before reporting; report via report-writing. Prefer a sandbox, disposable VM, or controlled lab.
Example
bash
# Read-only first step; confirm scope before anything active.
cat scope.txt  # target list from the authorized engagement brief

Adapted from elementalsouls/Claude-BugHunter (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: executable helpers, commands, engine, and research assets not bundled.

© sickn33, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/hunt-graphql of sickn33/agentic-awesome-skills.

Open the folder on GitHubat commit ec02547

Used in 1 other repository

We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sickn33/agentic-awesome-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Hunt Graphql next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Hunt Graphql compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hunt Graphql this skillsickn33/agentic-awesome-skills47k1 repos~5.7kAutomated safety check: PassMIT
API DesignerJeffallan/claude-skills12k2 repos~2kAutomated safety check: PassMIT
Nodejs Backend Patternsever-works/ever-works15818 repos~4kAutomated safety check: PassAGPL-3.0
GraphQL Operations with CodegenChrisWiles/claude-code-showcase6.1k3 repos~1.5kAutomated safety check: PassNone
API Design Principlesjh941213/my-cc-harness12620 repos~3.4kAutomated safety check: PassNone
API And Interface Designdzhalaevd/Donatello1359 repos~2.6kAutomated safety check: PassApache-2.0

Similar skills

  • API Designer

    Jeffallan/claude-skills

    Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

    12k GitHub starsUsed in 2 repos~2k tokens
    Backend & APIsAuto-check passed
  • Nodejs Backend Patterns

    ever-works/ever-works

    Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.

    158 GitHub starsUsed in 18 repos~4k tokens
    Backend & APIsAuto-check passed
  • GraphQL Operations with Codegen

    ChrisWiles/claude-code-showcase

    Sets the rules for writing GraphQL queries and mutations in .gql files, running codegen, and using generated Apollo hooks with proper error and loading handling.

    6.1k GitHub starsUsed in 3 repos~1.5k tokens
    Backend & APIsAuto-check passed
  • API Design Principles

    jh941213/my-cc-harness

    REST 및 GraphQL API 설계 원칙 가이드. An agent skill from jh941213/my-cc-harness.

    126 GitHub starsUsed in 20 repos~3.4k tokens
    Backend & APIsAuto-check passed
  • API And Interface Design

    dzhalaevd/Donatello

    Guides stable API and interface design. An agent skill from dzhalaevd/Donatello.

    135 GitHub starsUsed in 9 repos~2.6k tokens
    Backend & APIsAuto-check passed
  • Designing APIs

    CloudAI-X/claude-workflow-v2

    Designs REST and GraphQL APIs including endpoints, error handling, versioning, and documentation.

    1.4k GitHub starsUsed in 2 repos~1.2k tokens
    Backend & APIsAuto-check passed

More from sickn33/agentic-awesome-skills

All 1,354 skills in this repo
  • Liuguang Banlan UI

    sickn33/agentic-awesome-skills

    Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • User Thoughts Memory

    sickn33/agentic-awesome-skills

    Saves a user's project decisions, rules and preferences into a project-local mdbase so later sessions and other agents can recover the intent.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Using LWC Memory and Graphs

    sickn33/agentic-awesome-skills

    Keeps project decisions, research and verified results available across coding-agent sessions through LWC memory, a document Wiki graph and a CodeGraph code index.

    47k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Find Complementary Founders

    sickn33/agentic-awesome-skills

    Guides an agent through assessing its own owner for cofounder fit, publishing an approved profile, and ranking complementary profiles other agents published for their owners.

    47k GitHub starsUsed in 1 repo~4.8k tokens
    Auto-check passed
  • Cline Pilot

    sickn33/agentic-awesome-skills

    Acts as a proxy for the Cline CLI, dispatching coding tasks one at a time, monitoring runs by hard evidence, relaying decisions to you and learning per-project preferences.

    47k GitHub starsUsed in 1 repo~4.6k tokens
    Auto-check passed
  • Content Creator

    sickn33/agentic-awesome-skills

    Drafts and reviews audience-specific content from supplied brand examples, with local scripts for brand voice and SEO diagnostics, channel templates and a content calendar.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed

Works with

Categories

Questions about Hunt Graphql

What does Hunt Graphql do?

Hunting skill for graphql vulnerabilities. An agent skill from sickn33/agentic-awesome-skills. Hunt Graphql is an agent skill from sickn33/agentic-awesome-skills. Hunting skill for graphql vulnerabilities.

When should I use Hunt Graphql?

Hunt Graphql fits situations like: tasks that involve GraphQL.

How do I install Hunt Graphql in Claude Code?

Run `npx skills add sickn33/agentic-awesome-skills --skill hunt-graphql -a claude-code`. Or copy the skill folder (skills/hunt-graphql in sickn33/agentic-awesome-skills) into .claude/skills/hunt-graphql in your project. Claude Code loads it when a task matches its description.

How do I install Hunt Graphql in Codex?

Run `npx skills add sickn33/agentic-awesome-skills --skill hunt-graphql -a codex`. Or copy the skill folder (skills/hunt-graphql in sickn33/agentic-awesome-skills) into .agents/skills/hunt-graphql in your project. Codex loads it when a task matches its description.

Can I use Hunt Graphql in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sickn33/agentic-awesome-skills --skill hunt-graphql -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hunt-graphql, .gemini/skills/hunt-graphql, .github/skills/hunt-graphql and .opencode/skills/hunt-graphql in your project.

What does Hunt Graphql need to run?

Going by SKILL.md and its folder, Hunt Graphql needs the command-line tools its instructions call (curl, jq and python3) and credentials named ADMIN_TOKEN and ATTACKER_TOKEN. Our summary lists: Python 3; A credential in YOUR_TOKEN; A credential in ADMIN_TOKEN. Compatibility (from SKILL.md): Requires explicit written authorization for a target scope plus the relevant testing tools for this technique. Docs-only; helper scripts and commands not bundled..

Does Hunt Graphql access the network?

SKILL.md names 3 domains. As links in the text: hackerone.com, about.gitlab.com and github.com. This is read from the text; nothing was executed.

Is Hunt Graphql safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Hunt Graphql use?

Hunt Graphql is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hunt Graphql use?

About 5.7k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Hunt Graphql?

Skills that share tags, products or a category with Hunt Graphql: API Designer (Jeffallan/claude-skills, 12k stars), Nodejs Backend Patterns (ever-works/ever-works, 158 stars), GraphQL Operations with Codegen (ChrisWiles/claude-code-showcase, 6.1k stars) and API Design Principles (jh941213/my-cc-harness, 126 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hunt Graphql?

sickn33 (a GitHub user) maintains it in sickn33/agentic-awesome-skills, which has 47,343 GitHub stars. The repository holds 1,354 skills in this directory. The repository was last updated on October 7, 2026.

Source: sickn33/agentic-awesome-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.