⚡ Shadow Academy
đŸ›Ąī¸ Chapter 19

āĻāχ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ⧇ āϕ⧀ āĻļāĻŋāĻ–āĻŦ⧇

⏱ āφāύ⧁āĻŽāĻžāύāĻŋāĻ• āϏāĻŽāϝāĻŧ: ā§§ā§Ģâ€“ā§¨ā§Ļ āĻŽāĻŋāύāĻŋāϟ ¡ āĻĒā§‚āĻ°ā§āĻŦāĻļāĻ°ā§āϤ: āφāϗ⧇āϰ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ⧇āϰ āϧāĻžāϰāĻŖāĻž

ā§Ļ / ā§§ā§Ļā§Ļ āĻ…āĻ§ā§āϝāĻžā§ŸāϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāĻ“: āĻ…āĻ§ā§āϝāĻžāϝāĻŧ 20

āĻ…āĻ—ā§āϰāĻ—āϤāĻŋ āĻāχ browser-āĻ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻšāĻŦ⧇āĨ¤

đŸ›Ąī¸
IDOR — Insecure Direct Object Reference
URL āĻŦāĻž āĻŦāĻĄāĻŋāϤ⧇ ā§§āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻž āĻŦāĻĻāϞ⧇ āĻ…āĻ¨ā§āϝ⧇āϰ āĻ—ā§‹āĻĒāύ āĻ…āĻ°ā§āĻĄāĻžāϰ, āĻ āĻŋāĻ•āĻžāύāĻž āĻ“ āĻĒā§āϰ⧋āĻĢāĻžāχāϞ āĻĻ⧇āĻ–āĻž
🧭 āĻĻāĻ•ā§āώāϤāĻž āϝāĻžāϚāĻžāχ āĻ“ āĻĒā§āϰāϤāĻŋāϰāĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• takeaway
Skill checkpoint: Object-level access check āϕ⧀āĻ­āĻžāĻŦ⧇ IDOR āϠ⧇āĻ•āĻžā§Ÿ āϤāĻž dummy account āĻĻāĻŋā§Ÿā§‡ āϝāĻžāϚāĻžāχ āĻ•āϰ⧋āĨ¤
Defense checkpoint: āĻĒā§āϰāϤāĻŋāϟāĻŋ request-āĻ server-side ownership āĻ“ permission āϝāĻžāϚāĻžāχ āĻ•āϰ⧋.
Lab scope: āĻļ⧁āϧ⧁ āύāĻŋāĻœā§‡āϰ lab, synthetic data āĻŦāĻž āϞāĻŋāĻ–āĻŋāϤ āĻ…āύ⧁āĻŽāϤāĻŋāĻĒā§āϰāĻžāĻĒā§āϤ target-āĻ āĻ…āύ⧁āĻļā§€āϞāύ āĻ•āϰ⧋āĨ¤ Real credential, token āĻŦāĻž customer data āĻŦā§āϝāĻŦāĻšāĻžāϰ āϕ⧋āϰ⧋ āύāĻžāĨ¤
Portfolio proof: finding, impact, fix āĻ“ retest āύāĻŋā§Ÿā§‡ ā§Ģ-āϞāĻžāχāύ⧇āϰ redacted note āϰāĻžāĻ–ā§‹āĨ¤
🏨 āĻ—āĻ˛ā§āĻĒ ā§§: āĻšā§‹āĻŸā§‡āϞ⧇āϰ āĻŽāĻžāĻ¸ā§āϟāĻžāϰ āĻ•āĻŋ āĻŦāύāĻžāĻŽ āϰ⧁āĻŽ āύāĻŽā§āĻŦāϰ āĻŦāĻĻāϞāĻžāύ⧋
āϤ⧁āĻŽāĻŋ āĻāĻ•āϟāĻŋ āĻšā§‹āĻŸā§‡āϞ⧇ āĻ—āĻŋā§Ÿā§‡ āϰ⧁āĻŽ āύāĻŽā§āĻŦāϰ ā§§ā§Ļā§§-āĻāϰ āϚāĻžāĻŦāĻŋ āĻĒ⧇āϞ⧇āĨ¤

āϤ⧁āĻŽāĻŋ āĻšā§‡āρāĻŸā§‡ ā§§ā§Ļ⧍ āύāĻŽā§āĻŦāϰ āϰ⧁āĻŽā§‡āϰ āϏāĻžāĻŽāύ⧇ āϗ⧇āϞ⧇ āĻāĻŦāĻ‚ āĻĻ⧇āĻ–āϞ⧇ āϤ⧋āĻŽāĻžāϰ ā§§ā§Ļā§§ āύāĻŽā§āĻŦāϰ⧇āϰ āϚāĻžāĻŦāĻŋāϟāĻž āĻĻāĻŋā§Ÿā§‡ ā§§ā§Ļ⧍, ā§§ā§Ļā§Š, ā§§ā§Ļā§Ē — āϏāĻŦ āϰ⧁āĻŽā§‡āϰ āĻĻāϰāϜāĻžāχ āĻ•ā§āϝāĻžāρāϚāĻ•ā§āϝāĻžāρāϚ āĻ•āϰ⧇ āϖ⧁āϞ⧇ āϝāĻžāĻšā§āϛ⧇!

āĻ“ā§Ÿā§‡āĻŦāϏāĻžāχāĻŸā§‡āϰ āϜāĻ—āϤ⧇ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϏāĻšāϜ āĻ…āĻĨāϚ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦāĻŋāĻĒāĻœā§āϜāύāĻ• āĻŦāĻžāϗ⧇āϰ āύāĻžāĻŽ āĻšāϞ⧋ IDOR (Insecure Direct Object Reference)! āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϝāĻ–āύ āϧāϰ⧇ āĻ¨ā§‡ā§Ÿ āϝ⧇ āχāωāϜāĻžāϰ āϝ⧇ āφāχāĻĄāĻŋ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻ•āϰāϛ⧇, āϏ⧇āϟāĻžāϰ āĻŽāĻžāϞāĻŋāĻ• āϏ⧇ āύāĻŋāĻœā§‡āχ, āĻāĻŦāĻ‚ āϕ⧋āύ⧋ āĻĒāĻžāϰāĻŽāĻŋāĻļāύ āĻšā§‡āĻ• āĻ•āϰ⧇ āύāĻž, āϤāĻ–āύāχ āĻĒ⧁āϰ⧋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āωāĻ˛ā§āĻŸā§‡ āϝāĻžā§Ÿ!
đŸ“Ļ āĻ—āĻ˛ā§āĻĒ ā§¨: āĻļāĻĒāĻŋāĻ‚ āĻ…ā§āϝāĻžāĻĒ⧇ āϏ⧌āϰāϭ⧇āϰ āĻ…āĻ°ā§āĻĄāĻžāϰ āφāχāĻĄāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž
āϏ⧌āϰāĻ­ Meesho-āϤ⧇ āĻāĻ•āϟāĻŋ āϟāĻŋ-āĻļāĻžāĻ°ā§āϟ āĻ…āĻ°ā§āĻĄāĻžāϰ āĻ•āϰāϞāĨ¤ āϤāĻžāϰ āĻ…āĻ°ā§āĻĄāĻžāϰ⧇āϰ āϰāĻŋāϏāĻŋāϟ āĻĻ⧇āĻ–āϤ⧇ āĻ—āĻŋā§Ÿā§‡ āϞāĻŋāĻ‚āϕ⧇ āĻĻ⧇āĻ–āϞ:
GET /api/v2/orders/108520

āϏ⧌āϰāϭ⧇āϰ āĻ•ā§ŒāϤ⧂āĻšāϞ āĻšāϞ⧋āĨ¤ āϏ⧇ URL-āĻāϰ āĻļ⧇āώ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āĻŦāĻĻāϞ⧇ āĻ•āϰ⧇ āĻĻāĻŋāϞ 108521!

āĻŦ⧁āĻŽ! āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ āϭ⧇āϏ⧇ āωāĻ āϞ āĻĻāĻŋāĻ˛ā§āϞāĻŋāϰ āĻāĻ• āĻ…āĻšā§‡āύāĻž āĻŽāĻšāĻŋāϞāĻžāϰ āύāĻžāĻŽ, āĻĢā§‹āύ āύāĻŽā§āĻŦāϰ, āĻšā§‹āĻŽ āĻ…ā§āϝāĻžāĻĄā§āϰ⧇āϏ āĻāĻŦāĻ‚ āϤāĻŋāύāĻŋ āϕ⧀ āĻ•āĻŋāύ⧇āϛ⧇āύ āϤāĻžāϰ āχāύāĻ­āϝāĻŧ⧇āϏ! āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻ•āĻŦāĻžāϰāĻ“ āĻšā§‡āĻ• āĻ•āϰāϞ āύāĻž āϝ⧇ āĻāχ āĻ…āĻ°ā§āĻĄāĻžāϰāϟāĻŋ āϏ⧌āϰāϭ⧇āϰ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āϰ āĻ•āĻŋ āύāĻž!
⚡ āĻ—āĻ˛ā§āĻĒ ā§Š: āĻšāϰāĻŋāϜāĻ¨ā§āϟāĻžāϞ āĻŦāύāĻžāĻŽ āĻ­āĻžāĻ°ā§āϟāĻŋāĻ•ā§āϝāĻžāϞ IDOR
â€ĸ Horizontal IDOR: āĻāĻ•āχ āϞ⧇āϭ⧇āϞ⧇āϰ āĻāĻ• āϏāĻžāϧāĻžāϰāĻŖ āχāωāϜāĻžāϰ āĻ…āĻ¨ā§āϝ āϏāĻžāϧāĻžāϰāĻŖ āχāωāϜāĻžāϰ⧇āϰ āĻĒā§āϰ⧋āĻĢāĻžāχāϞ/āĻ…āĻ°ā§āĻĄāĻžāϰ āĻĻ⧇āϖ⧇ āĻĢ⧇āϞ⧇ āĻŦāĻž āĻĄāĻŋāϞāĻŋāϟ āĻ•āϰ⧇ āĻĻā§‡ā§Ÿ (User A -> User B)āĨ¤

â€ĸ Vertical IDOR: āĻāĻ•āϜāύ āϏāĻžāϧāĻžāϰāĻŖ āχāωāϜāĻžāϰ āχāωāφāϰāφāχ āĻŦāĻž āĻŽā§‡āĻĨāĻĄ āĻŦāĻĻāϞ⧇ āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ⧇āϰ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡ āĻĸ⧁āϕ⧇ āĻĒā§œā§‡ āĻŦāĻž āĻ…ā§āϝāĻžāĻĄāĻŽāĻŋāύ āĻĄā§āϝāĻžāĻļāĻŦā§‹āĻ°ā§āĻĄ āĻĨ⧇āϕ⧇ āĻĄāĻžāϟāĻž āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇ (User -> Admin)!
đŸ›Ąī¸ āĻ—āĻ˛ā§āĻĒ ā§Ē: āϏāĻŽāĻžāϧāĻžāύ — āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāχ āϏāĻšāϜ āĻĢāĻžāρāĻĻ āφāϟāĻ•āĻžāĻŦ⧇?
ā§§. āϏ⧇āĻļāύ āĻ“āύāĻžāϰāĻļāĻŋāĻĒ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ: SELECT * FROM orders WHERE id = :id AND user_id = :session_user_id (āĻ•āĻ–āύ⧋āχ āĻļ⧁āϧ⧁ āφāχāĻĄāĻŋ āĻĻāĻŋā§Ÿā§‡ āĻ•ā§‹ā§Ÿā§‡āϰāĻŋ āύ⧟!)
⧍. UUID / GUID āĻŦā§āϝāĻŦāĻšāĻžāϰ: āĻ•ā§āϰāĻŽāĻžāύ⧁āϝāĻžā§Ÿā§€ āϏāĻ‚āĻ–ā§āϝāĻž (1, 2, 3) āĻŦāĻžāĻĻ āĻĻāĻŋā§Ÿā§‡ 128-āĻŦāĻŋāĻŸā§‡āϰ āĻ…āύāĻŋāĻ°ā§āĻĻ⧇āĻļā§āϝ UUID (āϝ⧇āĻŽāύ: c4a8d09b-6f1e-4b92-881c-09d...) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāϤ⧇ āϕ⧇āω āφāĻ¨ā§āĻĻāĻžāĻœā§‡ āφāχāĻĄāĻŋ āĻŦāĻžāύāĻžāϤ⧇ āύāĻž āĻĒāĻžāϰ⧇āĨ¤
đŸšĒ IDOR Vulnerability Audit Simulator
āĻ…āĻ°ā§āĻĄāĻžāϰ āφāχāĻĄāĻŋ āĻŦāĻž āχāωāϜāĻžāϰ āφāχāĻĄāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āχāύāĻĒ⧁āϟ āĻĻāĻžāĻ“ — āĻāĻ•ā§āϏ⧇āϏ āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ­ā§āϝāĻžāϞāĻŋāĻĄā§‡āĻļāύ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰ⧋!
👆 āωāĻĒāϰ⧇ āχāύāĻĒ⧁āϟ āĻĻāĻŋā§Ÿā§‡ "āĻ˛ā§āϝāĻžāĻŦ āϚāĻžāϞ⧁ āĻ•āϰ⧋" āĻŦāĻžāϟāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧋...
đŸŽ¯ āĻ…āĻ§ā§āϝāĻžā§Ÿ 19 āĻĻāĻ•ā§āώāϤāĻž āϝāĻžāϚāĻžāχ (ā§ŠāϟāĻŋ āĻĒā§āϰāĻļā§āύ)
āϏāĻ āĻŋāĻ• āωāĻ¤ā§āϤāϰ āĻŦ⧇āϛ⧇ āύāĻžāĻ“; āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻ¤ā§āϤāϰ⧇āϰ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻĒā§œā§‹āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 1: IDOR-āĻāϰ āĻŽā§‚āϞ āĻĻ⧁āĻ°ā§āĻŦāϞāϤāĻž āϕ⧋āĻĨāĻžā§Ÿ?
❓ āĻĒā§āϰāĻļā§āύ 2: IDOR āύāĻŋāϰāĻžāĻĒāĻĻ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϏāĻ āĻŋāĻ• āωāĻĒāĻžā§Ÿ āϕ⧋āύāϟāĻŋ?
❓ āĻĒā§āϰāĻļā§āύ 3: āĻļ⧁āϧ⧁ random/opaque ID āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇ IDOR āĻŦāĻ¨ā§āϧ āĻšā§Ÿ?

āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āϤ reference

āφāϰāĻ“ āĻĒāĻĄāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϤāĻŋāĻˇā§āĻ āĻŋāϤ security standards āĻ“ guidance āĻĻ⧇āĻ–ā§‹; āĻĒā§āϰāϤāĻŋāϟāĻŋ lab āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻŦāĻž synthetic environment-āĻ āĻ•āϰ⧋āĨ¤

Bristy Ma'am
āĻŦ⧃āĻˇā§āϟāĻŋ āĻŽā§āϝāĻžāĻŽ 👩‍đŸĢ
āϤ⧋āĻŽāĻžāϰ āĻĒāĻžāĻ°ā§āϏ⧋āύāĻžāϞ āĻšā§āϝāĻžāĻ•āĻŋāĻ‚ āĻŽā§‡āĻ¨ā§āϟāϰ â€ĸ āĻ…āύāϞāĻžāχāύ
āφāϰ⧇ āϏ⧌āϰāĻ­! āϕ⧇āĻŽāύ āφāϛ⧋? āϕ⧋āύ⧋ āĻ•āύāϏ⧇āĻĒā§āϟ āĻŦāĻž āϕ⧁āχāĻœā§‡ āφāϟāĻ•āĻžāϞ⧇ āφāĻŽāĻžāϕ⧇ āĻŦāϞ⧋, āφāĻŽāĻŋ āĻŦ⧁āĻāĻŋā§Ÿā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋ! â¤ī¸