⚡ Shadow Academy
⚡ Chapter 34

এই অধ্যায়ে কী শিখবে

⏱ আনুমানিক সময়: ১৫–২০ মিনিট · পূর্বশর্ত: আগের অধ্যায়ের ধারণা

০ / ১০০ অধ্যায়চালিয়ে যাও: অধ্যায় 35

অগ্রগতি এই browser-এ স্থানীয়ভাবে সংরক্ষিত হবে।

⚡
WebSocket হ্যাকিং — Real-time Connection ধরো!
লাইভ সকেট ইন্টারসেপশন, ফ্রেম ম্যানিপুলেশন ও অটোমেটেড স্নাইপার বট
🧭 দক্ষতা যাচাই ও প্রতিরক্ষামূলক takeaway
Skill checkpoint: Local WebSocket fixture-এ frame structure ও validation error বোঝো।
Defense checkpoint: Server-side schema validation, authentication ও replay defense যোগ করো.
Lab scope: শুধু নিজের lab, synthetic data বা লিখিত অনুমতিপ্রাপ্ত target-এ অনুশীলন করো। Real credential, token বা customer data ব্যবহার কোরো না।
Portfolio proof: finding, impact, fix ও retest নিয়ে ৫-লাইনের redacted note রাখো।
⚡ গল্প ১: WebSocket বনাম HTTP — অবিরাম পাইপলাইনের গল্প
সাধারণ HTTP রিকোয়েস্ট হলো ওয়াকিটকির মতো — তুমি কথা বলবে (Request), তারপর অপরপাশ উত্তর দেবে (Response), তারপর লাইন কেটে যাবে। কিন্তু WebSocket (`ws://` বা `wss://`) হলো একটি সার্বক্ষণিক খোলা টেলিফোন লাইনের মতো! একবার কানেকশন তৈরি হয়ে গেলে দুপাশ থেকেই অবিরাম ডেটার স্রোত বইতে থাকে।

লাইভ ক্রিকেট স্কোর, শেয়ার বাজার, ক্রিপ্টোকারেন্সি ট্রেডিং, লাইভ বিডিং ও মাল্টিপ্লেয়ার গেম — সব চলে এই WebSocket-এর ওপর। আর সেখানেই থাকে সবচেয়ে বড় দুর্বলতা!
🎣 গল্প ২: লাইভ বিডিং হাইজ্যাক ও ফ্রেম ইন্টারসেপ্ট
অনেক ই-কমার্স বা নিলাম সাইটে লাইভ বিডিং চলে (যেমন ১ টাকায় আইফোন নিলাম!)। সাধারণ মানুষ যখন বোতামে চাপ দেয়, তখন একটি ছোট JSON ফ্রেম বা বাইনারি প্যাকেট WebSocket দিয়ে সার্ভারে পৌঁছায়।

কিন্তু সাধারণ মানুষের রিকোয়েস্ট যায় স্বাভাবিক গতিতে (৩০০-৫০০ মিলিসেকেন্ড পর)। আর তুমি যদি একটি পাইথন স্ক্রিপ্ট দিয়ে WebSocket কানেকশন ধরে রাখো, তবে নিলামের শেষ ০.০১ সেকেন্ডে স্বয়ংক্রিয়ভাবে ফ্রেম পাঠিয়ে সবার আগে বিড জিতে নিতে পারো! এটাকে বলে Sniper Bot Attack!
# Python দিয়ে WebSocket লাইভ ট্র্যাফিক ইন্টারসেপ্ট ও অটো-বিড:
import websocket, json, time

def on_message(ws, message):
    data = json.loads(message)
    print("Received Live Frame:", data)
    
    # যদি নিলামের আর ৫ সেকেন্ড বাকি থাকে:
    if data.get('event') == 'AUCTION_TICK' and data.get('seconds_left') == 1:
        bid_payload = {"action": "PLACE_BID", "auction_id": "IPHONE_16", "amount": 105}
        ws.send(json.dumps(bid_payload))
        print("🎯 Sniper Bid Placed Instantly!")

ws = websocket.WebSocketApp("wss://bid.target.com/live-stream", on_message=on_message)
ws.run_forever()
🛡️ গল্প ৩: CSWSH — Cross-Site WebSocket Hijacking
তুমি কি জানো WebSocket হ্যান্ডশেকের সময় ব্রাউজার স্বয়ংক্রিয়ভাবে ইউজারের কুকি পাঠিয়ে দেয়? ডেভেলপাররা যদি `Origin` হেডার যাচাই না করে, তবে একজন ভিকটিম তোমার বানানো ফিশিং পেজে ঢোকা মাত্রই তোমার সার্ভার ভিকটিমের একাউন্টের নামে WebSocket কানেকশন খুলে ফেলবে! একে বলে Cross-Site WebSocket Hijacking (CSWSH)!
💡 WebSocket প্রোটোকল রুলস
১. `wss://` ট্র্যাফিক Reqable বা Burp Suite দিয়ে ইন্টারসেপ্ট করো। ২. ফ্রেমের ভেতর বাইনারি থাকলে Protobuf বা JSON ডিকোড করো। ৩. Origin ভ্যালিডেশন মিস থাকলে CSWSH টেস্ট করো!

🧪 WebSocket Frame Injector

WebSocket JSON ফ্রেম ইনপুট দিয়ে লাইভ রেসপন্স স্ট্রিম দেখো!

ল্যাবের ইনপুট দিয়ে "রান করো" বাটনে ক্লিক করো...
❓ প্রশ্ন 1: WebSocket URL কেমন দেখতে?
❓ প্রশ্ন 2: HTTP ও WebSocket-এর পার্থক্য?
❓ প্রশ্ন 3: Chrome-এ WebSocket কোথায়?
❓ প্রশ্ন 4: WebSocket CSRF কখন?
❓ প্রশ্ন 5: wss:// মানে কী?
❓ প্রশ্ন 6: WebSocket DoS কীভাবে?
❓ প্রশ্ন 7: Game-এ WebSocket modify করলে?
❓ প্রশ্ন 8: Python WebSocket library কোনটা?
❓ প্রশ্ন 9: HTTP → WebSocket upgrade কোন header দিয়ে?
❓ প্রশ্ন 10: Live stock price app-এ WebSocket কেন?

বিশ্বস্ত reference

আরও পড়ার জন্য প্রতিষ্ঠিত security standards ও guidance দেখো; প্রতিটি lab অনুমোদিত বা synthetic environment-এ করো।

Bristy Ma'am
বৃষ্টি ম্যাম 👩‍🏫
তোমার পার্সোনাল হ্যাকিং মেন্টর • অনলাইন
আরে সৌরভ! কেমন আছো? কোনো কনসেপ্ট বা কুইজে আটকালে আমাকে বলো, আমি বুঝিয়ে দিচ্ছি! ❤️