Skip to content

byoniq/BugBountyMethod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Bug Bounty Methodology

License Status PRs

A practitioner-focused methodology and checklist for bug bounty hunting and web application penetration testing. Tight, tool-linked, and structured by attack surface.

For the condensed pre-flight checklist, see BB-Checklist.md.


Table of Contents

  1. Recon & Asset Discovery
  2. Network Recon
  3. JavaScript & Client-Side Analysis
  4. API Testing
  5. Authentication
  6. Session Management
  7. Authorization (IDOR / BAC)
  8. Input Handling
  9. Business Logic
  10. Race Conditions
  11. HTTP Request Smuggling
  12. Cloud Misconfigurations
  13. Mobile (Quick Reference)
  14. Misc Checks
  15. Reporting
  16. Contributing
  17. License

Recon & Asset Discovery

Large Scope (Org / Multi-Domain)

Medium Scope (Single Domain)

Small Scope (Single Host)


Network Recon

  • Full TCP — nmap -p- --min-rate 5000 -T4 <target> then -sCV on found ports
  • UDP top ports — nmap -sU --top-ports 200
  • Mass scan — masscan, naabu
  • TLS/SSL — testssl.sh, sslyze
  • Email spoofing — SpoofCheck (DMARC/SPF/DKIM)
  • Service-specific — SMB, RDP, Redis, Memcached, MongoDB, Elasticsearch, Docker API exposure

JavaScript & Client-Side Analysis


API Testing

REST

  • Spec discovery — /swagger, /swagger.json, /api-docs, /openapi.json, /v1/, /v2/, /graphql
  • Verb tampering — try PUT, DELETE, PATCH, OPTIONS on GET endpoints
  • Content-type confusion — swap application/jsonapplication/xmlapplication/x-www-form-urlencoded
  • Mass assignment — add isAdmin, role, verified, userId to payloads
  • Rate limit bypass — X-Forwarded-For, X-Real-IP, X-Originating-IP, casing changes, null bytes, path/param mutation
  • Versioning — test old API versions (/v1/ may lack fixes in /v2/)
  • Kiterunner for content discovery on APIs (uses HTTP verbs and routes wordlists)

GraphQL

  • Introspection — {__schema{types{name fields{name}}}}; if disabled, try clairvoyance
  • IDE access — /graphql, /graphiql, /playground, /console
  • Batching attacks — send array of queries to bypass rate limits / brute force
  • Alias-based abuse — repeated aliased queries for brute force
  • Field suggestion leak — typo in field name to leak schema
  • Mutation enumeration — focus on delete*, update*, create*Admin*
  • Tools — InQL, graphql-cop, graphw00f

Authentication

  • Username enumeration via login, register, password reset, response timing
  • Password policy (length, complexity, common-password rejection, breach check)
  • Brute force resilience — account lockout, IP throttling, CAPTCHA after N attempts
  • 2FA — bypass via response manipulation, backup code abuse, race conditions, missing rate limits on OTP, OTP reuse
  • Password reset — token entropy/reuse, host header injection, email[]=victim&email[]=attacker, Unicode normalization
  • OAuth — redirect_uri validation (path traversal, open redirect, subdomain), state parameter (CSRF), implicit flow leaks, scope upgrade
  • SAML — XML signature wrapping, comment injection, xmlns confusion, SAML Raider
  • JWT — alg: none, alg: HS256 with public key as secret, kid injection (path traversal, SQLi), JWK injection, weak HMAC secret (jwt_tool, hashcat)
  • SSO — host header / session confusion between SP and IdP
  • Magic links — predictable tokens, no expiry, reuse, login CSRF

Session Management

  • Session fixation — does login regenerate the session ID?
  • CSRF — token presence, validation, reuse across users, SameSite cookie attribute
  • Cookie flags — HttpOnly, Secure, SameSite, __Host-/__Secure- prefixes
  • Logout — server-side invalidation? Token usable post-logout?
  • Concurrent sessions — does login N+1 kill session N?
  • Timeout — idle vs absolute
  • Session token entropy and predictability

Authorization (IDOR / BAC)

  • Horizontal — swap IDs (numeric, UUID, base64, hashed) between two test accounts
  • Vertical — low-priv user accessing admin endpoints; check direct URL, not just UI
  • Method-based — endpoint hidden from UI but reachable via direct request
  • Parameter pollution — ?user=victim&user=attacker
  • ID encoding — try wrapping ID in array, JSON object, different encoding
  • Mass IDOR — Autorize (Burp), AuthMatrix
  • GUIDs / UUIDs — check for v1 (timestamp-predictable) vs v4 (random)
  • Tenant isolation — multi-tenant apps: try IDs from tenant A while logged in as tenant B

Input Handling

XSS

  • Reflected/stored — Dalfox, XSStrike, manual payload tuning
  • DOM — Burp DOM Invader, manual sink analysis
  • Blind XSS — XSS Hunter Express, Interactsh
  • CSP bypass — review Content-Security-Policy; look for unsafe-inline, unsafe-eval, overly broad CDNs, JSONP endpoints, csp-evaluator
  • Filter bypass — case, encoding, event handlers, SVG, <details>, <dialog open ontoggle>, mutation XSS

SQLi / NoSQLi

  • Manual probe — ', '', ", --, OR 1=1, time-based payloads
  • Automation — sqlmap with --risk=3 --level=5 (in scope only)
  • Blind boolean / time-based — when no output reflection
  • NoSQL — {"$ne": null}, {"$gt": ""}, {"$regex": ".*"} (MongoDB)
  • 2nd-order — payload stored then triggered elsewhere
  • ORM-specific quirks — Hibernate HQL, Sequelize, Prisma

SSRF

  • Standard targets — http://127.0.0.1, http://localhost, http://[::], http://0.0.0.0
  • Cloud metadata — AWS 169.254.169.254, GCP metadata.google.internal, Azure 169.254.169.254/metadata/instance, IMDSv2 token flow
  • DNS rebinding — singularity
  • Bypasses — decimal/octal IPs, URL parsers, @ confusion, redirect chains, gopher/file/dict schemes (Gopherus)
  • Blind SSRF — out-of-band via interactsh, Burp Collaborator

SSTI

  • Polyglot probe — ${{<%[%'"}}%\
  • Engine-specific payloads — Jinja2 {{7*7}}, Twig {{7*'7'}}, Freemarker <#assign>, ERB <%= %>
  • tplmap for automation
  • PortSwigger SSTI labs map almost 1:1 to real targets

XXE

  • Classic — <!ENTITY xxe SYSTEM "file:///etc/passwd">
  • Blind — OOB DTD via Burp Collaborator
  • Parameter entities, SVG upload XXE, DOCX/XLSX/ODT XXE, SOAP XXE
  • Billion laughs / quadratic blowup for DoS (only if in scope)

LFI / RFI / Path Traversal

  • ../, encoded variants, ....//, null byte (legacy), filter wrappers (php://filter/convert.base64-encode/resource=)
  • Log poisoning → RCE
  • Wordlists — LFI-Payloads

Command Injection

  • Separators — ;, &&, |, `, $(), newline
  • Blind — DNS/HTTP OOB callbacks
  • commix for automation

Prototype Pollution

  • Client-side — pollute via URL/JSON, check sink in PP-finder or DOM Invader
  • Server-side (Node.js) — __proto__, constructor.prototype in JSON bodies
  • Gadgets per framework (Express, Mongoose, Lodash)

Business Logic

  • Multi-step flow tampering — skip steps, replay, modify hidden state
  • Price/quantity manipulation — negative numbers, decimal precision, currency confusion, integer overflow
  • Coupon/voucher logic — stack multiple, reuse, race-apply
  • Workflow bypass — KYC, age gates, terms acceptance
  • Numeric edge cases — 0, -1, MAX_INT, very large floats, scientific notation
  • Client-side validation only — disable JS, intercept and modify
  • File upload — extension/MIME/magic-byte mismatch, polyglots, double extension, SVG XSS, path traversal in filename, zip slip

Race Conditions

  • Burp Repeater "send group in parallel" / single-packet attack (HTTP/2)
  • Turbo Intruder race.py template
  • High-value targets — coupon redemption, gift card claim, withdrawal, vote, like, follow, MFA verify
  • Reference: PortSwigger's Smashing the state machine

HTTP Request Smuggling

  • CL.TE / TE.CL / TE.TE / CL.CL detection — smuggler, Burp HTTP Request Smuggler
  • HTTP/2 downgrade smuggling (H2.CL, H2.TE)
  • Browser-powered ("client-side") smuggling
  • Validate impact — cache poisoning, auth bypass, request hijacking

Cloud Misconfigurations

  • S3 — public read/write, ACL misconfigs, bucket takeover (S3Scanner)
  • GCP buckets — same idea, storage.googleapis.com/<bucket>
  • Azure Blob — <account>.blob.core.windows.net
  • Cloud metadata via SSRF — covered above
  • IAM — overly permissive policies, leaked AWS keys (trufflehog)
  • Lambda/Functions — env vars, source via console
  • Misconfigured CloudFront / CloudFlare — origin IP disclosure (CloudFail)

Mobile (Quick Reference)

  • APK/IPA static — MobSF, apktool, jadx
  • iOS — Frida, Objection, Cycript
  • SSL pinning bypass — Frida scripts (frida-scripts)
  • Hardcoded secrets — same JS-style hunt against decompiled source
  • Deep links / URL schemes — intent redirection, WebView abuse
  • Backup analysis — adb backup, plist files on iOS

Misc Checks

  • Security headers — Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy (note: many of these are informational findings on most programs)
  • CAPTCHA — OCR (Tesseract), reuse of solved token, removal of CAPTCHA parameter, automation of audio CAPTCHA
  • Open redirect — useful as chain primitive (OAuth, SSRF filter bypass)
  • Cache poisoning — unkeyed headers, parameter cloaking (Param Miner)
  • Web cache deception — /account.php/nonexistent.css
  • Dependency confusion — internal package names published publicly on npm/PyPI
  • Email injection — header injection in contact forms, SMTP smuggling

Reporting

A solid report is often the gap between a bounty and a "won't fix":

  • Clear, single-sentence title with impact
  • Severity per program rules (avoid self-rating CVSS without justification)
  • Steps to reproduce — numbered, copy-pasteable, no missing context
  • Proof — screenshot or short video; redact your own creds
  • Impact — what could an attacker actually do? Tie to the program's stated assets/data
  • Remediation — short, suggestive, not prescriptive
  • Don't include unrelated findings in one report — file separately

Contributing

PRs welcome. Useful additions: new tools that meaningfully change a workflow, missing attack classes, real-world bypasses. Please keep entries tight and link to authoritative sources.


License

MIT — use freely, attribution appreciated.


This is a living document. Methodology evolves; treat it as a scaffold, not a script.

About

Personal bug bounty methodology: recon, API testing, auth bypass, IDOR, input handling — with tool-linked checklists

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors