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

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

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

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

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

đŸ›Ąī¸
WAF Bypass — Cloudflare āĻ“ TLS Fingerprint
Bot detection āĻāĻĄāĻŧāĻŋāϝāĻŧ⧇ human-āĻāϰ āĻŽāϤ⧋ request āĻĒāĻžāĻ āĻžāĻ“
🧭 āĻĻāĻ•ā§āώāϤāĻž āϝāĻžāϚāĻžāχ āĻ“ āĻĒā§āϰāϤāĻŋāϰāĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• takeaway
Skill checkpoint: WAF-āĻāϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ āĻāĻŦāĻ‚ TLS/client fingerprint-āĻāϰ āϏ⧀āĻŽāĻž āĻŦā§āϝāĻžāĻ–ā§āϝāĻž āĻ•āϰ⧋āĨ¤
Defense checkpoint: Detection rule, rate limit āĻ“ false-positive review-āĻ āĻŽāύ⧋āϝ⧋āĻ— āĻĻāĻžāĻ“.
Lab scope: āĻļ⧁āϧ⧁ āύāĻŋāĻœā§‡āϰ lab, synthetic data āĻŦāĻž āϞāĻŋāĻ–āĻŋāϤ āĻ…āύ⧁āĻŽāϤāĻŋāĻĒā§āϰāĻžāĻĒā§āϤ target-āĻ āĻ…āύ⧁āĻļā§€āϞāύ āĻ•āϰ⧋āĨ¤ Real credential, token āĻŦāĻž customer data āĻŦā§āϝāĻŦāĻšāĻžāϰ āϕ⧋āϰ⧋ āύāĻžāĨ¤
Portfolio proof: finding, impact, fix āĻ“ retest āύāĻŋā§Ÿā§‡ ā§Ģ-āϞāĻžāχāύ⧇āϰ redacted note āϰāĻžāĻ–ā§‹āĨ¤
🏰 āϰāĻžāϜāĻŽāĻšāϞ⧇āϰ āĻ—āĻžāĻ°ā§āĻĄ — WAF āϕ⧀?
WAF = Web Application FirewallāĨ¤ Cloudflare-āĻāϰ WAF āĻšāϞ⧋ āϰāĻžāϜāĻŽāĻšāϞ⧇āϰ security guardāĨ¤

āϤ⧁āĻŽāĻŋ āϏāĻžāϧāĻžāϰāĻŖ Python requests āĻĒāĻžāĻ āĻžāϞ⧇ — guard āĻŦāϞ⧇ āĻĻ⧇āϝāĻŧ "āϤ⧁āĻŽāĻŋ robot! āϭ⧇āϤāϰ⧇ āϝāĻžāĻŦ⧇ āύāĻž!"

āĻ•āĻŋāĻ¨ā§āϤ⧁ Chrome browser āĻĨ⧇āϕ⧇ same request āĻĒāĻžāĻ āĻžāϞ⧇ — "Welcome! āĻĸ⧁āϕ⧇ āϝāĻžāĻ“āĨ¤"

āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϕ⧋āĻĨāĻžāϝāĻŧ? TLS Fingerprint!
đŸ‘Ŗ JA3 Fingerprint — āϜ⧁āϤ⧋āϰ āĻ›āĻžāĻĒ⧇āϰ āĻŽāϤ⧋
TLS handshake-āĻ āĻĒā§āϰāϤāĻŋāϟāĻž software āύāĻŋāĻœā§‡āϰ āĻĒāϰāĻŋāϚāϝāĻŧ āĻĻ⧇āϝāĻŧ — āĻāϟāĻžāχ JA3 fingerprint:
JA3 = MD5(TLS_version + Cipher_suites + Extensions + Groups + Formats) Python requests: JA3 = 3b5074b1b5d032e5620f69f9159bdbfe ❌ BLOCKED! Chrome 120: JA3 = aa56c057ad164ec4fdcb7a5a283be9fc ✅ OK Firefox 121: JA3 = b32309a26951912be7dba376398abc3b ✅ OK Safari 17: JA3 = 773906b0efdefa24a7f2b8eb6985bf37āĻ“ ✅ OK
Cloudflare-āĻāϰ database-āĻ āϞāĻ•ā§āώ āϞāĻ•ā§āώ JA3 āφāϛ⧇āĨ¤ Python-āĻāϰ JA3 = "BOT" āϚāĻŋāĻšā§āύāĻŋāϤ!
❓ āĻļ⧁āϧ⧁ User-Agent āĻŦāĻĻāϞāĻžāϞ⧇ āĻšāϝāĻŧ āύāĻž āϕ⧇āύ?
āĻ…āύ⧇āϕ⧇ āĻ­āĻžāĻŦ⧇ User-Agent āĻŦāĻĻāϞāĻžāϞ⧇āχ Cloudflare bypass āĻšāĻŦ⧇āĨ¤ āϭ⧁āϞ!

āφāϧ⧁āύāĻŋāĻ• WAF āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āĻāĻ•āϏāĻžāĻĨ⧇ check āĻ•āϰ⧇:
Check list: ✅ TLS JA3 fingerprint (āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ!) ✅ HTTP/2 SETTINGS frame values ✅ HTTP/2 WINDOW_UPDATE size ✅ Header order āĻ“ case (Chrome āϏāĻŦāϏāĻŽāϝāĻŧ lowercase) ✅ Mouse movement patterns (behavior analysis) ✅ JavaScript challenge results ✅ IP reputation score
User-Agent = "Chrome" āĻ•āĻŋāĻ¨ā§āϤ⧁ JA3 = Python → āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇ āϧāϰāĻž!
🎭 curl_cffi — āϏāĻŽāĻžāϧāĻžāύ!
curl_cffi = libcurl-āĻāϰ Python bindingāĨ¤ Real browser-āĻāϰ exact TLS stack use āĻ•āϰ⧇:
# Install: pip install curl-cffi # Use: from curl_cffi import requests # Chrome 120-āĻāϰ āĻŽāϤ⧋ āĻĻ⧇āĻ–āĻžāĻ“ — JA3 exact match! r = requests.get( "https://training.example.test/api/products", impersonate="chrome120" ) print(r.status_code) # 200 ✅ Cloudflare bypass! # Available browsers: # chrome99, chrome110, chrome120 # firefox102, firefox133 # safari15_3, safari17_0 # edge99, edge101
🌐 HTTP/2 Fingerprint
JA3-āĻāϰ āĻŦāĻžāχāϰ⧇ HTTP/2 traffic-āĻ“ fingerprint āĻ•āϰāĻž āϝāĻžāϝāĻŧ:
HTTP/2 Fingerprint (JA3-āϰ āĻŽāϤ⧋ āĻ•āĻŋāĻ¨ā§āϤ⧁ HTTP/2-āĻ): Chrome-āϰ SETTINGS frame: HEADER_TABLE_SIZE: 65536 ENABLE_PUSH: 0 INITIAL_WINDOW_SIZE: 6291456 MAX_HEADER_LIST_SIZE: 262144 Python http2-āϰ SETTINGS: HEADER_TABLE_SIZE: 4096 INITIAL_WINDOW_SIZE: 65535 ↑ Completely different! Cloudflare āĻāϟāĻžāĻ“ āĻĻ⧇āϖ⧇āĨ¤
curl_cffi āĻāϟāĻžāĻ“ Chrome-āĻāϰ āĻŽāϤ⧋ āĻ•āϰ⧇ — āĻĒ⧁āϰ⧋āĻĒ⧁āϰāĻŋ browser-āĻāϰ āĻŽāϤ⧋!
💡 Chapter 6-āĻāϰ āĻŽā§‚āϞ āĻļāĻŋāĻ•ā§āώāĻž
🏰 WAF = Web Application Firewall — bot detect āĻ•āϰ⧇ block āĻ•āϰ⧇
đŸ‘Ŗ JA3 = TLS handshake-āĻāϰ MD5 fingerprint — āĻĒā§āϰāϤāĻŋāϟāĻž software-āĻāϰ unique
❌ Python requests JA3 = blocked — āĻļ⧁āϧ⧁ User-Agent āĻŦāĻĻāϞāĻžāϞ⧇ āĻšāĻŦ⧇ āύāĻž
🎭 curl_cffi + impersonate="chrome120" = Cloudflare bypass
🌐 HTTP/2 fingerprint-āĻ“ āφāϞāĻžāĻĻāĻž — curl_cffi āĻāϟāĻžāĻ“ handle āĻ•āϰ⧇
đŸ–ąī¸ Advanced WAF (PerimeterX) mouse movement āĻ“ behavior āĻĻ⧇āϖ⧇
🎭 WAF Bypass Simulator
Site āĻĻāĻžāĻ“ — browser fingerprint bypass score āĻĻ⧇āĻ–āĻžāĻŦ⧇!
👆 āωāĻĒāϰ⧇ āĻ•āĻŋāϛ⧁ āĻĻāĻŋāϝāĻŧ⧇ āĻ˛ā§āϝāĻžāĻŦ āϚāĻžāϞ⧁ āĻ•āϰ⧋...
đŸŽ¯ Chapter 6 — āϕ⧁āχāϜ (ā§§ā§ĻāϟāĻž āĻĒā§āϰāĻļā§āύ)
āĻĒā§āϰāϤāĻŋāϟāĻž āωāĻ¤ā§āϤāϰ⧇ click āĻ•āϰ⧋ → āϏāĻŦ⧁āϜ/āϞāĻžāϞ + āĻŦā§āϝāĻžāĻ–ā§āϝāĻž!
❓ āĻĒā§āϰāĻļā§āύ 1: JA3 fingerprint āϕ⧀?
💡 JA3 = TLS Client Hello packet-āĻāϰ cipher suites, extensions, groups āĻĨ⧇āϕ⧇ MD5 hashāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻž software-āĻāϰ uniqueāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 2: Cloudflare āϕ⧇āύ āĻļ⧁āϧ⧁ User-Agent āĻŦāĻĻāϞāĻžāϞ⧇ bypass āĻšāϝāĻŧ āύāĻž?
💡 āφāϧ⧁āύāĻŋāĻ• WAF: TLS JA3, HTTP/2 SETTINGS, header order, mouse behavior āϏāĻŦ analyze āĻ•āϰ⧇āĨ¤ User-Agent āĻāĻ•āϟāĻž āĻŽāĻžāĻ¤ā§āϰ signalāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 3: curl_cffi library āϕ⧀ āϏ⧁āĻŦāĻŋāϧāĻž āĻĻ⧇āϝāĻŧ?
💡 curl_cffi Chrome/Safari-āĻāϰ exact JA3 + HTTP/2 fingerprint match āĻ•āϰ⧇ — Cloudflare Python script detect āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 4: impersonate='chrome120' āϕ⧋āĻĨāĻžāϝāĻŧ āĻĻāĻŋāĻŦ⧇?
💡 curl_cffi-āϰ requests.get() āĻŦāĻž Session-āĻ impersonate='chrome120' āĻĻāĻŋāϞ⧇ āϏ⧇āχ browser-āĻāϰ exact fingerprint match āĻšāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 5: Python requests library-āϰ JA3 āϕ⧇āĻŽāύ?
💡 Python requests-āĻāϰ TLS fingerprint = '3b5074b...' — WAF databases-āĻ known bot signatureāĨ¤ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇ blockāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 6: HTTP/2 fingerprint āϕ⧀āĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻšāϝāĻŧ?
💡 HTTP/2-āϤ⧇ SETTINGS frame-āĻāϰ values (HEADER_TABLE_SIZE, WINDOW_SIZE), HEADERS order — āĻĒā§āϰāϤāĻŋāϟāĻž browser āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇ configure āĻ•āϰ⧇āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 7: TLS Fingerprint āĻ•āĻ–āύ create āĻšāϝāĻŧ?
💡 TLS handshake-āĻāϰ āĻĒā§āϰāĻĨāĻŽ step = Client HelloāĨ¤ āĻāϤ⧇ cipher suites, TLS version, extensions — āĻāϟāĻžāχ JA3-āĻāϰ sourceāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 8: WAF = Web Application Firewall āϕ⧀ āĻ•āϰ⧇?
💡 WAF = Layer 7 (application layer) firewallāĨ¤ SQL injection, XSS, bot traffic, DDoS — detect āĻ“ block āĻ•āϰ⧇āĨ¤
❓ āĻĒā§āϰāĻļā§āύ 9: curl_cffi-āϤ⧇ āϕ⧋āύ browsers impersonate āĻ•āϰāĻž āϝāĻžāϝāĻŧ?
💡 curl_cffi-āϤ⧇ chrome99/110/120, firefox102/133, safari15_3/17_0, edge99/101 — āϏāĻŦ major browser impersonate āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤
❓ āĻĒā§āϰāĻļā§āύ 10: Advanced bot detection (PerimeterX) āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇?
💡 PerimeterX, DataDome behavioral analysis āĻ•āϰ⧇ — mouse trajectory, scroll pattern, keystroke dynamics, canvas fingerprintāĨ¤

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

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

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