0Pricing
Ethical Hacking Academy · Lesson

Finding Common Bugs

IDOR, XSS, SSRF.

Finding Common Bugs is a free Ethical Hacking Academy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Ethical Hacking Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

The Bread-and-Butter Bugs

A handful of vulnerability classes pay most bug bounties because they are common and impactful. Master these three first:

  • IDOR — accessing other users' data via predictable IDs
  • XSS — injecting script into a page
  • SSRF — making the server fetch attacker-chosen URLs

This lesson shows how to hunt each one methodically.

Understanding IDOR

Insecure Direct Object Reference (IDOR) happens when an app uses a user-supplied identifier to fetch an object without checking that the user owns it.

Change the ID, access someone else's data. It is an access-control flaw, not an injection.

# Your own invoice
GET /api/invoices/1001  Authorization: Bearer <your-token>

# Change the ID - do you get someone else's?
GET /api/invoices/1002  Authorization: Bearer <your-token>

Hunting IDOR Effectively

To find IDOR, create two accounts and compare. Anything that references an object by ID is a candidate.

  • Capture a request from account A that fetches A's data
  • Replay it with account B's session but A's object ID
  • If B sees A's data, that is IDOR

Watch for IDs in URLs, JSON bodies, headers, and even base64/UUID forms.

# Original (account A)
POST /api/profile/update
{ "user_id": 5001, "email": "a@example.com" }

# Tamper: use account B's session, keep A's user_id
# If A's profile changes, broken object-level authorization.

Understanding XSS

Cross-Site Scripting (XSS) is injecting JavaScript that runs in another user's browser. Three main types:

  • Reflected — payload echoed back in the immediate response
  • Stored — payload saved and served to other users (highest impact)
  • DOM-based — client-side JS writes attacker input into the DOM unsafely

Testing for XSS

Inject a unique marker first to see where and how your input is reflected, then craft a payload that fits the context (HTML body, attribute, or script).

Context determines which payload breaks out and executes.

# Probe reflection with a unique canary
?q=xss7391canary

# Basic HTML-context payload
<script>alert(document.domain)</script>

# Attribute breakout
" onmouseover=alert(1) x="

Proving XSS Impact

A simple alert(1) proves execution but reviewers want impact. Demonstrate what an attacker could actually steal or do.

  • Read a CSRF token or session info accessible to JS
  • Show document.domain to prove the origin
  • For stored XSS, show it firing in a victim account

Never actually steal real users' sessions, just demonstrate the capability.

Understanding SSRF in Apps

SSRF in a bug bounty context means finding a feature that fetches a URL you control. Likely candidates:

  • Webhook URLs, callback URLs
  • Image/PDF generators that fetch remote resources
  • URL preview / link-unfurling features
  • Import-from-URL functionality

Point these at internal or metadata endpoints to prove impact.

Confirming SSRF Out-of-Band

When the response does not show the fetched content, use an out-of-band server to confirm the target made a request. An interaction callback proves SSRF blind.

Tools like Burp Collaborator or interactsh give you a unique URL that logs hits.

# Give the app your unique OOB URL
POST /api/webhook
{ "callback": "http://abc123.oast.fun/" }

# If abc123.oast.fun logs a DNS/HTTP hit, the server fetched it = SSRF.

Using a Proxy to Hunt

All three bug classes are found by intercepting and tampering with requests. An intercepting proxy is the core tool.

  • Burp Suite or OWASP ZAP to capture/modify traffic
  • Repeater to replay and tweak single requests
  • Intruder/fuzzer to test many IDs or payloads

Learning your proxy deeply pays off more than any single technique.

Chaining for Bigger Impact

The biggest bounties come from chaining bugs. A medium-severity bug plus another can become critical.

  • SSRF reaching cloud metadata leads to credential theft and account takeover
  • IDOR exposing tokens leads to full account compromise
  • Stored XSS in an admin panel leads to admin takeover

Always ask: what can this bug be combined with?

Test Carefully and In Scope

These bugs touch real data and real users. Stay ethical:

  • Use your own test accounts, do not view real users' data beyond proof
  • Avoid stored XSS payloads that could fire for real users, scope them to yourself
  • For SSRF, do not pivot deep into internal systems, prove the primitive and stop

Demonstrating impact responsibly keeps you within safe harbor.

Quick Check

You log in as user B, replay a request using B's session but with user A's object ID, and you receive A's private data. Which vulnerability is this?

Recap: Finding Common Bugs

You learned to hunt the three highest-value bug classes.

  • IDOR: compare two accounts, tamper object IDs, check ownership enforcement
  • XSS: probe reflection, fit the payload to context, prove real impact
  • SSRF: find URL-fetching features, confirm blind cases out-of-band
  • Chain bugs for critical impact (e.g. SSRF to cloud metadata)
  • Use an intercepting proxy and stay within scope

Next: turning findings into reports that get paid.

Frequently asked questions

Is the “Finding Common Bugs” lesson free?

Yes — the full text of “Finding Common Bugs” is free to read here on the web, and the Ethical Hacking Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Ethical Hacking Academy course, upgrade to CoddyKit PRO.

What will I learn in “Finding Common Bugs”?

IDOR, XSS, SSRF. You practise Ethical Hacking Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Ethical Hacking Academy?

No prior experience is required. Ethical Hacking Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Finding Common Bugs” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Ethical Hacking Academy lesson?

Yes. Every Ethical Hacking Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Choosing Targets
  2. Recon at Scale
  3. Finding Common Bugs
  4. Writing Great Reports
← Back to Ethical Hacking Academy