⚡ Shadow Academy
📡 Chapter 17

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

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

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

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

📡
WebSocket Hacking — Real-time Connection Hijack āĻ•āϰ⧋
āĻĻā§āĻŦāĻŋāĻŽā§āĻ–ā§€ āϞāĻžāχāĻ­ āϏāϕ⧇āĻŸā§‡āϰ āϭ⧇āϤāϰ āĻĢā§āϰ⧇āĻŽ āχāύāĻœā§‡āĻ•āĻļāύ āĻ“ āύāĻŋāϞāĻžāĻŽ āĻ•āĻžāϰāϚ⧁āĻĒāĻŋāϰ āϰ⧋āĻŽāĻžāĻžā§āϚāĻ•āϰ āĻŦāĻŋāĻœā§āĻžāĻžāύ
🧭 āĻĻāĻ•ā§āώāϤāĻž āϝāĻžāϚāĻžāχ āĻ“ āĻĒā§āϰāϤāĻŋāϰāĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• takeaway
Skill checkpoint: WebSocket handshake, frame āĻ“ persistent session-āĻāϰ āφāϚāϰāĻŖ āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰ⧋āĨ¤
Defense checkpoint: āĻĒā§āϰāϤāĻŋāϟāĻŋ message-āĻ authorization, origin validation āĻ“ replay control āϰāĻžāĻ–ā§‹.
Lab scope: āĻļ⧁āϧ⧁ āύāĻŋāĻœā§‡āϰ lab, synthetic data āĻŦāĻž āϞāĻŋāĻ–āĻŋāϤ āĻ…āύ⧁āĻŽāϤāĻŋāĻĒā§āϰāĻžāĻĒā§āϤ target-āĻ āĻ…āύ⧁āĻļā§€āϞāύ āĻ•āϰ⧋āĨ¤ Real credential, token āĻŦāĻž customer data āĻŦā§āϝāĻŦāĻšāĻžāϰ āϕ⧋āϰ⧋ āύāĻžāĨ¤
Portfolio proof: finding, impact, fix āĻ“ retest āύāĻŋā§Ÿā§‡ ā§Ģ-āϞāĻžāχāύ⧇āϰ redacted note āϰāĻžāĻ–ā§‹āĨ¤
📞 āĻ—āĻ˛ā§āĻĒ ā§§: āϚāĻŋāĻ āĻŋāĻĒāĻ¤ā§āϰ āĻŦāύāĻžāĻŽ āϞāĻžāχāĻ­ āĻšāϟāϞāĻžāχāύ — āĻ“ā§Ÿā§‡āĻŦ-āϏāϕ⧇āϟ āϕ⧀?
HTTP āĻšāϞ⧋ āϚāĻŋāĻ āĻŋāϰ āĻŽāϤ⧋ — āϤ⧁āĻŽāĻŋ āϚāĻŋāĻ āĻŋ āĻĒāĻžāĻ āĻžāĻ“, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϜāĻŦāĻžāĻŦ āĻĻā§‡ā§Ÿ, āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻļ⧇āώ!

āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝāĻ–āύ āϤ⧁āĻŽāĻŋ āϞāĻžāχāĻ­ āφāχāĻĒāĻŋāĻāϞ āĻŽā§āϝāĻžāϚ āĻĻ⧇āĻ–ā§‹, āĻ•ā§āϰāĻŋāĻĒā§āĻŸā§‹ āĻŸā§āϰ⧇āĻĄāĻŋāĻ‚ āĻ•āϰ⧋ āĻŦāĻž āϰāĻŋā§Ÿā§‡āϞ-āϟāĻžāχāĻŽ āύāĻŋāϞāĻžāĻŽā§‡ āĻŦāĻŋāĻĄ āĻ•āϰ⧋, āϤāĻ–āύ āĻĒā§āϰāϤāĻŋ āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡ āϚāĻŋāĻ āĻŋ āĻĒāĻžāĻ āĻžāϞ⧇ āϤ⧋ āϏāĻ°ā§āĻŦāύāĻžāĻļ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇! āϤāĻžāχ āϤ⧈āϰāĻŋ āĻšā§Ÿā§‡āĻ›āĻŋāϞ WebSocket — āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻ“ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŽāĻžāĻā§‡ āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻŦāĻ•ā§āώāĻŖāĻŋāĻ• āĻ–ā§‹āϞāĻž āĻĒāĻžāχāĻĒāϞāĻžāχāύ āĻŦāĻž āϞāĻžāχāĻ­ āĻŸā§‡āϞāĻŋāĻĢā§‹āύ āϞāĻžāχāύ! āĻāĻ•āĻŦāĻžāϰ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻšāϞ⧇ āωāĻ­ā§Ÿā§‡āχ āϝ⧇ āϕ⧋āύ⧋ āϏāĻŽā§Ÿ āĻŦāĻŋāύāĻž āĻ…āύ⧁āĻŽāϤāĻŋāϤ⧇ āĻ•āĻĨāĻž āĻŦāϞāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
đŸŽŖ āĻ—āĻ˛ā§āĻĒ ā§¨: āϞāĻžāχāĻ­ āύāĻŋāϞāĻžāĻŽā§‡ ā§§ āϟāĻžāĻ•āĻžāϰ āϜāĻžāϞāĻŋ⧟āĻžāϤāĻŋ
āϏ⧌āϰāĻ­ āĻāĻ•āϟāĻŋ āĻ…āύāϞāĻžāχāύ āύāĻŋāϞāĻžāĻŽ āĻ…ā§āϝāĻžāĻĒ⧇ āĻĻ⧇āĻ–āϞ āĻāĻ•āϟāĻŋ āϏ⧋āύāĻžāϰ āύ⧇āĻ•āϞ⧇āϏ āωāĻ āϛ⧇āĨ¤

āϏāĻžāϧāĻžāϰāĻŖ āĻŽāĻžāύ⧁āώ āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ āĻŦāĻŋāĻĄ āĻ•āϰāϛ⧇ â‚šā§§ā§Ļā§Ļā§Ļā§Ļ, â‚šā§§ā§¨ā§Ļā§Ļā§ĻāĨ¤ āϏ⧌āϰāĻ­ āĻĒā§āϰāĻ•ā§āϏāĻŋāϤ⧇ āĻ“ā§Ÿā§‡āĻŦ-āϏāϕ⧇āĻŸā§‡āϰ āĻĢā§āϰ⧇āĻŽ āĻŽāύāĻŋāϟāϰ āĻ•āϰāϞāĨ¤ āϏ⧇ āĻĻ⧇āĻ–āϞ āĻŦā§āϰāĻžāωāϜāĻžāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĒāĻžāĻ āĻžāĻšā§āϛ⧇:
{"type": "BID_SUBMIT", "auction_id": 994, "amount": 15000}

āϏ⧌āϰāĻ­ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāχ āĻŽā§‡āϏ⧇āϜāϟāĻŋ āĻĒā§‡ā§Ÿā§‡āχ āϏāĻŽāĻ¸ā§āϤ āĻ•āĻžāύ⧇āĻ•ā§āĻŸā§‡āĻĄ āχāωāϜāĻžāϰ⧇āϰ āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ āĻŦā§āϰāĻĄāĻ•āĻžāĻ¸ā§āϟ āĻ•āϰ⧇ āĻĻāĻŋāĻšā§āϛ⧇!
đŸ’Ĩ āĻ—āĻ˛ā§āĻĒ ā§Š: CSWSH — Cross-Site WebSocket Hijacking
āĻŦ⧃āĻˇā§āϟāĻŋ āĻŽā§āϝāĻžāĻŽ āĻŦāϞāϞ⧇āύ, "āϏ⧌āϰāĻ­, āĻ“ā§Ÿā§‡āĻŦ-āϏāϕ⧇āĻŸā§‡āϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦ⧜ āĻĻ⧁āĻ°ā§āĻŦāϞāϤāĻž āĻšāϞ⧋ āĻāϤ⧇ āϕ⧋āύ⧋ Same-Origin Policy (SOP) āĻ•āĻžāϜ āĻ•āϰ⧇ āύāĻž!"

āϝāĻĻāĻŋ āϕ⧋āύ⧋ āĻ–āĻžāϰāĻžāĻĒ āĻ“ā§Ÿā§‡āĻŦāϏāĻžāχāϟ āϤ⧋āĻŽāĻžāϰ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āĻ–ā§‹āϞāĻž āĻĨāĻžāϕ⧇, āϏ⧇āχ āϏāĻžāχāĻŸā§‡āϰ āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϤ⧋āĻŽāĻžāϰāχ āϞāĻ—āχāύ āϕ⧁āĻ•āĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦā§āϝāĻžāĻ‚āϕ⧇āϰ āĻ“ā§Ÿā§‡āĻŦ-āϏāϕ⧇āϟ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻšāĻžāϤ āĻŽā§‡āϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇ (new WebSocket("wss://bank.com/live"))! āĻāϕ⧇āχ āĻŦāϞ⧇ CSWSHāĨ¤ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āφāĻ•ā§āϰāĻŽāĻŖāĻ•āĻžāϰ⧀ āϤ⧋āĻŽāĻžāϰ āϞāĻžāχāĻ­ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžā§Ÿ āĻ“ āϰāĻŋā§Ÿā§‡āϞ-āϟāĻžāχāĻŽ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
đŸ›Ąī¸ āĻ—āĻ˛ā§āĻĒ ā§Ē: āĻĄāĻŋāĻĢ⧇āĻ¨ā§āϏ — āϞāĻžāχāĻ­ āĻĒāĻžāχāĻĒāϞāĻžāχāύ āϕ⧀āĻ­āĻžāĻŦ⧇ āϏ⧁āϰāĻ•ā§āώāĻŋāϤ āϰāĻžāĻ–āĻŦ⧇?
ā§§. Origin Header Validation: āĻšā§āϝāĻžāĻ¨ā§āĻĄāĻļ⧇āϕ⧇āϰ āϏāĻŽā§Ÿ Origin āĻšā§‡āĻĄāĻžāϰ āĻ•āĻ ā§‹āϰāĻ­āĻžāĻŦ⧇ āϝāĻžāϚāĻžāχ āĻ•āϰāĻžāĨ¤
⧍. One-Time Ticket Auth: āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻ–ā§‹āϞāĻžāϰ āφāϗ⧇ HTTP āĻĻāĻŋā§Ÿā§‡ āĻāĻ•āϟāĻŋ ā§Šā§Ļ āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ āĻ“ā§ŸāĻžāύ-āϟāĻžāχāĻŽ āϏāĻŋāĻ•ā§āϰ⧇āϟ āĻŸā§‹āϕ⧇āύ āύāĻŋā§Ÿā§‡ āϏāϕ⧇āĻŸā§‡ āĻĒāĻžāϏ āĻ•āϰāĻžāĨ¤
ā§Š. Strict Schema Validation: āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āφāϏāĻž āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĢā§āϰ⧇āĻŽā§‡āϰ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻ•āĻ ā§‹āϰāĻ­āĻžāĻŦ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāĨ¤
📡 WebSocket Frame Interceptor Lab
āφāωāϟāĻŦāĻžāωāĻ¨ā§āĻĄ āĻĢā§āϰ⧇āĻŽ āĻŸā§‡āĻ•ā§āϏāϟ āĻĻāĻŋā§Ÿā§‡ āϏāϕ⧇āĻŸā§‡ āϞāĻžāχāĻ­ āχāύāĻœā§‡āĻ•āĻļāύ āĻ“ āĻĢā§āϰ⧇āĻŽ āϰāĻŋāĻ•āĻ¨ā§āϏāĻŸā§āϰāĻžāĻ•āĻļāύ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰ⧋!
👆 āωāĻĒāϰ⧇ āχāύāĻĒ⧁āϟ āĻĻāĻŋā§Ÿā§‡ "āĻ˛ā§āϝāĻžāĻŦ āϚāĻžāϞ⧁ āĻ•āϰ⧋" āĻŦāĻžāϟāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧋...
đŸŽ¯ Chapter 17 āϕ⧁āχāϜ (ā§§ā§ĻāϟāĻž āĻĒā§āϰāĻļā§āύ)
āĻĒā§āϰāϤāĻŋāϟāĻž āωāĻ¤ā§āϤāϰ⧇ click āĻ•āϰ⧋ → āϏāĻŦ⧁āϜ/āϞāĻžāϞ + āĻŦā§āϝāĻžāĻ–ā§āϝāĻž!
❓ āĻĒā§āϰāĻļā§āύ 1: WebSocket HTTP āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻž āϕ⧀āĻ­āĻžāĻŦ⧇?
💡 WebSocket = full-duplex persistent connectionāĨ¤ HTTP = request-response (stateless)āĨ¤ Real-time apps-āĻ idealāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 2: WebSocket URL-āĻāϰ prefix āϕ⧀?
💡 WebSocket URL: ws://example.com āĻŦāĻž wss://example.com (TLS/SSL)āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 3: WebSocket intercept āĻ•āϰāϤ⧇ āϕ⧋āύ tool?
💡 Burp Suite Proxy → WebSocket historyāĨ¤ Messages intercept, modify, replay āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 4: WebSocket handshake āϕ⧀āĻ­āĻžāĻŦ⧇ āĻšāϝāĻŧ?
💡 WebSocket handshake: HTTP GET + 'Upgrade: websocket' header → server responds 101 → connection upgradedāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 5: ws.send() āϕ⧀ āĻ•āϰ⧇?
💡 ws.send(data) = client āĻĨ⧇āϕ⧇ server-āĻ message āĻĒāĻžāĻ āĻžāύ⧋āĨ¤ ws.onmessage = server āĻĨ⧇āϕ⧇ receive āĻ•āϰāĻžāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 6: WebSocket message replay attack āϕ⧀?
💡 Replay = captured valid message āφāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāύ⧋āĨ¤ Bid, order, vote — replay āĻ•āϰ⧇ unauthorized actionāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 7: wss vs ws āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ?
💡 wss = WebSocket Secure (TLS)āĨ¤ ws = unencryptedāĨ¤ Production-āĻ āϏāĻŦāϏāĻŽāϝāĻŧ wss use āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 8: WebSocket message format āϏāĻžāϧāĻžāϰāĻŖāϤ?
💡 WebSocket message format flexible — JSON text (most common), binary (games, streaming), ProtobufāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 9: Live bidding race condition āϕ⧀āĻ­āĻžāĻŦ⧇ exploit āĻ•āϰāĻŦā§‹?
💡 Bid message capture → Burp Repeater → same millisecond-āĻ multiple bids replay → race conditionāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 10: WebSocket heartbeat āϕ⧀?
💡 WebSocket heartbeat = periodic ping-pongāĨ¤ Connection idle āĻšāϞ⧇ server/client close āĻ•āϰ⧇ — heartbeat āĻāϟāĻž prevent āĻ•āϰ⧇āĨ¤

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

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

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