⚡ Shadow Academy
đŸ”Ŧ Chapter 4

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

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

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

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

đŸ”Ŧ
Traffic Capture — HTTP Toolkit āĻĻāĻŋāϝāĻŧ⧇ API āĻĻ⧇āĻ–ā§‹
App āĻ“ Server-āĻāϰ āĻ—ā§‹āĻĒāύ āĻ•āĻĨā§‹āĻĒāĻ•āĻĨāύ intercept āĻ•āϰ⧋
🧭 āĻĻāĻ•ā§āώāϤāĻž āϝāĻžāϚāĻžāχ āĻ“ āĻĒā§āϰāϤāĻŋāϰāĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• takeaway
Skill checkpoint: āύāĻŋāĻœā§‡āϰ test app-āĻāϰ traffic flow capture āĻ•āϰ⧇ request āĻ“ response āĻŦ⧁āĻā§‹āĨ¤
Defense checkpoint: TLS āϝāĻžāϚāĻžāχ āĻ•āϰ⧋ āĻāĻŦāĻ‚ log/report āĻĨ⧇āϕ⧇ token āĻ“ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤ data āĻŦāĻžāĻĻ āĻĻāĻžāĻ“.
Lab scope: āĻļ⧁āϧ⧁ āύāĻŋāĻœā§‡āϰ lab, synthetic data āĻŦāĻž āϞāĻŋāĻ–āĻŋāϤ āĻ…āύ⧁āĻŽāϤāĻŋāĻĒā§āϰāĻžāĻĒā§āϤ target-āĻ āĻ…āύ⧁āĻļā§€āϞāύ āĻ•āϰ⧋āĨ¤ Real credential, token āĻŦāĻž customer data āĻŦā§āϝāĻŦāĻšāĻžāϰ āϕ⧋āϰ⧋ āύāĻžāĨ¤
Portfolio proof: finding, impact, fix āĻ“ retest āύāĻŋā§Ÿā§‡ ā§Ģ-āϞāĻžāχāύ⧇āϰ redacted note āϰāĻžāĻ–ā§‹āĨ¤
đŸ“Ŧ āĻĒā§‹āĻ¸ā§āϟāĻ…āĻĢāĻŋāϏ⧇āϰ āĻ—ā§‹āϝāĻŧ⧇āĻ¨ā§āĻĻāĻž — MITM āϕ⧀?
āϧāϰ⧋ āϤ⧁āĻŽāĻŋ āϚāĻŋāĻ āĻŋ āĻĒāĻžāĻ āĻžāĻšā§āϛ⧋ āĻŦāĻ¨ā§āϧ⧁āϕ⧇āĨ¤ āĻĒā§‹āĻ¸ā§āϟāĻ…āĻĢāĻŋāϏ⧇ āĻāĻ•āϜāύ āĻ—ā§‹āϝāĻŧ⧇āĻ¨ā§āĻĻāĻž āĻŦāϏ⧇ āφāϛ⧇ — āĻĒā§āϰāϤāĻŋāϟāĻž āϚāĻŋāĻ āĻŋ āϖ⧁āϞ⧇ āĻĒāĻĄāĻŧ⧇, āφāĻŦāĻžāϰ seal āĻ•āϰ⧇ āĻĒāĻžāĻ āĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤

āĻāϟāĻžāχ MITM (Man-in-the-Middle) attackāĨ¤ HTTP Toolkit āĻāχ āĻ•āĻžāϜāϟāĻžāχ āĻ•āϰ⧇ — App āĻ“ Server-āĻāϰ āĻŽāĻžāĻā§‡ āĻŦāϏ⧇ āϏāĻŦ traffic āĻĻ⧇āϖ⧇!
âš™ī¸ HTTP Toolkit Setup — Step by Step
PC-āϤ⧇: 1. https://httptoolkit.com āĻĨ⧇āϕ⧇ download āĻ•āϰ⧋ 2. HTTP Toolkit āϚāĻžāϞ⧁ āĻ•āϰ⧋ → "Android via ADB" select āĻ•āϰ⧋ Android Phone-āĻ (same WiFi-āϤ⧇ āĻĨāĻžāϕ⧋): 3. WiFi Settings → Manual Proxy set āĻ•āϰ⧋: Host: PC-āϰ IP address (āϝ⧇āĻŽāύ 192.168.1.105) Port: 8000 4. HTTP Toolkit-āĻāϰ CA certificate phone-āĻ install āĻ•āϰ⧋ (Settings → Security → Install certificate) 5. Phone-āĻ Meesho app āϚāĻžāϞ⧁ āĻ•āϰ⧋ → Traffic āĻĻ⧇āĻ–ā§‹!
💡 Tip: IP address āϜāĻžāύāϤ⧇ PC-āϤ⧇ cmd → ipconfig → IPv4 address āĻĻ⧇āĻ–ā§‹
🔑 Meesho-āϰ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ Headers
HTTP Toolkit-āĻ Meesho-āϰ request-āĻ āĻāχ headers āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇:
POST https://api.training.example.test/v2/supply/catalog/list Headers: x-token: SESSION_TOKEN_PLACEHOLDER ← JWT Auth token x-mid: Meesho_Android_Supplier_v25 ← Mobile/Device ID authorization: Basic xxxxx ← Basic auth content-type: application/json ← Data format x-nonce: 1735689600_abc123 ← Anti-replay token x-device-id: Android_670490126 ← Device fingerprint user-agent: Meesho/25.0 (Android) ← App identification
āĻĒā§āϰāϤāĻŋāϟāĻž header-āĻāϰ āĻ•āĻžāϜ āĻŦā§‹āĻā§‹ — bot āĻŦāĻžāύāĻžāϤ⧇ āĻāϗ⧁āϞ⧋ āϏāĻŦ āĻĻāϰāĻ•āĻžāϰ!
đŸ’Ĩ 462 Error-āĻāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϰāĻšāĻ¸ā§āϝ
462 = Meesho-āϰ custom token errorāĨ¤ āĻ•āĻžāϰāĻŖ āĻ“ āϏāĻŽāĻžāϧāĻžāύ:
āĻ•āĻžāϰāĻŖ ā§§: x-token expire (āϏāĻžāϧāĻžāϰāĻŖāϤ ā§§ āϘāĻŖā§āϟāĻž āĻĒāϰ) āĻ•āĻžāϰāĻŖ ⧍: Token āĻ…āĻ¨ā§āϝ device-āĻ simultaneously use āĻ•āĻžāϰāĻŖ ā§Š: Token format āϭ⧁āϞ āĻŦāĻž tampered Response: {"error": "token_expired", "code": 462, "action": "refresh"} ✅ Fix āĻ•āϰ⧋: POST /v2/auth/token/refresh {"refresh_token": "eyJhbGc..."} → New access token āĻĒāĻžāĻŦ⧇ → āφāĻŦāĻžāϰ request āĻ•āϰ⧋!
🌊 Filter āĻ•āϰ⧋ — āĻļ⧁āϧ⧁ āĻĻāϰāĻ•āĻžāϰāĻŋ traffic āĻĻ⧇āĻ–ā§‹
HTTP Toolkit-āĻ āϏāĻŦ traffic āφāϏ⧇ — ads, analytics āϏāĻŦāĨ¤ āĻļ⧁āϧ⧁ Meesho-āϰ API āĻĻ⧇āĻ–āϤ⧇ filter āĻ•āϰ⧋:
HTTP Toolkit Filter: Host contains "meesho" OR "meeshoapi" Production domains: api.training.example.test ← Main API prod.meeshoapi.com ← Product API events.training.example.test ← Analytics (skip āĻ•āϰ⧋) ads.training.example.test ← Ads (skip āĻ•āϰ⧋)
🔒 HTTPS Traffic āϕ⧇āύ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ?
HTTPS encrypted — āϤāĻžāĻšāϞ⧇ HTTP Toolkit āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĻ⧇āϖ⧇?

āωāĻ¤ā§āϤāϰ: CA Certificate! Phone-āĻ HTTP Toolkit-āĻāϰ certificate install āĻ•āϰāϞ⧇:
App → HTTP Toolkit (decrypt āĻ•āϰ⧇ āĻĻ⧇āϖ⧇) → Server ↑ āĻāĻ–āĻžāύ⧇ HTTPS āĻŦāϞ⧇ āĻ­āĻžāĻŦ⧇ App ← HTTP Toolkit (re-encrypt āĻ•āϰ⧇ āĻĒāĻžāĻ āĻžāϝāĻŧ) ← Server
âš ī¸ āĻāϟāĻžāχ SSL Pinning bypass āĻ•āϰāĻž āĻ›āĻžāĻĄāĻŧāĻž āĻ•āĻžāϜ āĻ•āϰ⧇ āύāĻž (Chapter 11)!
💡 Chapter 4-āĻāϰ āĻŽā§‚āϞ āĻļāĻŋāĻ•ā§āώāĻž
đŸ•ĩī¸ MITM = Man-in-the-Middle — Client āĻ“ Server-āĻāϰ āĻŽāĻžāĻā§‡ āĻŦāϏ⧇ traffic āĻĻ⧇āĻ–ā§‹
đŸ”Ŧ HTTP Toolkit = best MITM proxy tool for Android
🔑 x-token = JWT auth, x-mid = device ID, x-nonce = anti-replay
đŸ’Ĩ 462 = Meesho-āϰ custom token expire/invalid error
🌊 Filter āĻ•āϰ⧋ — production domain āĻļ⧁āϧ⧁ āĻĻ⧇āĻ–ā§‹
🔒 HTTPS āĻĻ⧇āĻ–āϤ⧇ phone-āĻ CA certificate install āĻ•āϰāϤ⧇ āĻšāϝāĻŧ
🔴 462 Error Simulator
Token age seconds-āĻ āĻĻāĻžāĻ“ — expire āĻšāϞ⧇ refresh simulate āĻšāĻŦ⧇!
👆 āωāĻĒāϰ⧇ āĻ•āĻŋāϛ⧁ āĻĻāĻŋāϝāĻŧ⧇ āĻ˛ā§āϝāĻžāĻŦ āϚāĻžāϞ⧁ āĻ•āϰ⧋...
đŸŽ¯ Chapter 4 — āϕ⧁āχāϜ (ā§§ā§ĻāϟāĻž āĻĒā§āϰāĻļā§āύ)
āĻĒā§āϰāϤāĻŋāϟāĻž āωāĻ¤ā§āϤāϰ⧇ click āĻ•āϰ⧋ → āϏāĻŦ⧁āϜ/āϞāĻžāϞ + āĻŦā§āϝāĻžāĻ–ā§āϝāĻž!
❓ āĻĒā§āϰāĻļā§āύ 1: MITM proxy āĻŽāĻžāύ⧇ āϕ⧀?
💡 MITM = Man-in-the-MiddleāĨ¤ Client āĻ­āĻžāĻŦ⧇ Server-āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻĨāĻž āĻšāĻšā§āϛ⧇, Server āĻ­āĻžāĻŦ⧇ Client-āĻāϰ āϏāĻžāĻĨ⧇ — āĻŽāĻžāĻāĻ–āĻžāύ⧇ proxy āϏāĻŦ āĻĻ⧇āĻ–āϛ⧇āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 2: HTTP Toolkit-āĻ HTTPS traffic āĻĻ⧇āĻ–āϤ⧇ āϕ⧀ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ?
💡 HTTPS decrypt āĻ•āϰāϤ⧇ phone-āĻ HTTP Toolkit-āĻāϰ CA certificate install āĻ•āϰāϤ⧇ āĻšāϝāĻŧ — āϤāĻžāĻšāϞ⧇ encrypted traffic plain-text-āĻ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 3: 462 error āϕ⧇āύ āĻšāϝāĻŧ?
💡 Meesho 462 = token expired āĻŦāĻž invalidāĨ¤ Standard 401-āĻāϰ āĻŦāĻĻāϞ⧇ āϤāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ error codeāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 4: x-mid header-āĻ āϕ⧀ āĻĨāĻžāϕ⧇?
💡 x-mid = Mobile IDāĨ¤ App platform, version, device identifierāĨ¤ āϝ⧇āĻŽāύ 'Meesho_Android_Supplier_v25.0'āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 5: x-nonce header āϕ⧀ āĻ•āĻžāĻœā§‡ āϞāĻžāϗ⧇?
💡 Nonce = number used onceāĨ¤ timestamp + randomāĨ¤ āĻāĻ•āχ request āĻĻ⧁āĻŦāĻžāϰ replay āĻ•āϰāϞ⧇ server reject āĻ•āϰ⧇āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 6: Traffic capture āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āϕ⧋āύ domain filter āĻ•āϰāĻŦā§‹?
💡 Production domain filter āĻ•āϰāϞ⧇ āĻļ⧁āϧ⧁ real API calls āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧāĨ¤ analytics, ads domain-āĻāϰ noise āĻŦāĻžāĻĻ āϝāĻžāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 7: Token refresh āĻ•āϰāϤ⧇ āϕ⧋āύ endpoint?
💡 Token refresh endpoint-āĻ expired access token-āĻāϰ āĻŦāĻĻāϞ⧇ fresh token āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤ Refresh token-āχ credentialāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 8: Phone-āĻ proxy set āĻ•āϰāϤ⧇ āϕ⧋āĻĨāĻžāϝāĻŧ āϝāĻžāĻŦā§‹?
💡 WiFi settings → āϏ⧇āχ WiFi-āϰ details → Manual Proxy → Host: PC IP, Port: 8000āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 9: HTTP Toolkit-āĻ request modify āĻ•āϰāĻž āϝāĻžāϝāĻŧ?
💡 HTTP Toolkit Breakpoints feature āĻĻāĻŋāϝāĻŧ⧇ request āĻŦāĻž response intercept āĻ•āϰ⧇ modify āĻ•āϰāĻž āϝāĻžāϝāĻŧ — parameters āĻŦāĻĻāϞ⧇ āĻĻāĻžāĻ“āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 10: MITM attack detect āĻ•āϰāĻžāϰ āωāĻĒāĻžāϝāĻŧ āϕ⧀?
💡 Certificate Pinning = app-āĻ hardcoded certificate hash āϰāĻžāĻ–āĻžāĨ¤ MITM proxy-āϰ certificate match āύāĻž āĻ•āϰāϞ⧇ connection refuse āĻ•āϰ⧇āĨ¤

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

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

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