Try Hack Box
4.88K subscribers
572 photos
63 videos
79 files
601 links
1 Nov 2020
1399/08/11
Learn penetration testing & Red Team
https://youtube.com/@tryhackbox
Channels :
@TryHackBoxOfficial ( RoadMap )
@TryHackBoxStory ( Story Hacking )
Contact : @Unique_exploitBot
ADS (Tablighat ) :
@THBADS
Download Telegram
🚀 پارت 0 (A)
شناسایی کلاینت‌ها و کوکی‌ها (Client Identification and Cookies)

در دنیای وب، سرورها ممکن است همزمان با هزاران کلاینت مختلف در تعامل باشند. اما چطور یک سرور می‌تواند تشخیص دهد که درخواست دریافتی از سوی چه کسی بوده یا به کدام کاربر تعلق دارد؟ به طور پیش‌فرض، پروتکل HTTP stateless (بی‌حالت) است، یعنی هر درخواست، مستقل از درخواست‌های قبلی در نظر گرفته می‌شود.

برای حل این چالش، سرورها نیاز دارند بتوانند هویت کاربران را تشخیص داده و پیگیری کنند. این شناسایی امکان‌پذیر نیست مگر با استفاده از یک‌سری تکنیک‌ها و فناوری‌هایی که به کمک آن‌ها، هر کاربر یا کلاینت به صورت یکتا قابل ردیابی خواهد بود.

در این سری، به بررسی روش‌هایی می‌پردازیم که سرورها از آن‌ها برای شناسایی کاربران بهره می‌برند. این روش‌ها هم در معماری شبکه اهمیت دارند و هم در امنیت وب، زیرا بسیاری از حملات و مکانیزم‌های دفاعی (مثل تشخیص نشست‌های غیرمجاز، پیگیری رفتار مشکوک و جلوگیری از جعل هویت) به همین مکانیزم‌های شناسایی وابسته‌اند.

✍️نویسنده
@TryHackBox | The Chaos

#HTTP #Cookies #CyberSecurity
👍6🔥1
🚀 پارت 0 (B)
بررسی The Personal Touch در وب مدرن

پروتکل HTTP ذاتاً یک پروتکل stateless یا بدون‌حالت است؛ یعنی سرور هیچ‌گونه اطلاعاتی از درخواست‌های قبلی کلاینت نگه نمی‌دارد. هر بار که مرورگر شما درخواستی به سرور ارسال می‌کند، سرور آن را به‌صورت مستقل پردازش کرده و پاسخ می‌دهد، بدون اینکه "بداند" چه کسی درخواست را فرستاده است.

اما این رفتار، برای سرویس‌های امروزی وب قابل‌قبول نیست. اکثر وب‌سایت‌های مدرن می‌خواهند تجربه‌ای شخصی‌سازی‌شده به کاربران ارائه دهند؛ چیزی که به آن The Personal Touch می‌گوییم. این یعنی سایت باید بداند شما کی هستید، سابقه‌ تعامل شما چیست، و بتواند شما را در جریان بازدیدهای بعدی شناسایی کند.

برخی کاربردهای مهم Personal Touch:

خوش‌آمدگویی شخصی: نمایش نام کاربر یا محتوای مخصوص او
🎯 پیشنهادهای هدفمند: ارائه محصول یا محتوا بر اساس رفتار قبلی شما
🧾 اطلاعات ذخیره‌شده: عدم نیاز به وارد کردن مکرر اطلاعات (مانند آدرس یا کارت بانکی)
🛒 ردیابی سشن: نگه‌داشتن وضعیت سبد خرید یا فرم‌های چندمرحله‌ای

📎 اما چطور این کار را در HTTP بدون‌حالت انجام می‌دهند؟

برای رسیدن به این هدف، تکنیک‌ها و فناوری‌های مختلفی ابداع شده‌اند که به سرورها اجازه می‌دهند هویت کاربران را شناسایی و پیگیری کنند. برخی از این تکنیک‌ها:

🔹Headerهای HTTP:
شامل اطلاعاتی مانند User-Agent، زبان، نوع مرورگر و…
🔹IP Address:
استفاده از آدرس IP برای شناسایی تقریبی کاربران
🔹Authentication:
شناسایی کاربران با ورود (Login) و احراز هویت
🔹Fat URLs:
قرار دادن اطلاعات شناسایی در آدرس‌ها (نه چندان ایمن!)
🔹Cookies:
یکی از مهم‌ترین روش‌ها برای نگه‌داری وضعیت (State) کاربر

✍️نویسنده
@TryHackBox | The Chaos

#HTTP #Cookies #CyberSecurity
👍41
🚀 پارت 1 (A)
بررسی HTTP Headers و شناسایی کاربران

در HTTP، هدرهای درخواست (Request Headers) اطلاعاتی درباره کاربر، مرورگر، مسیر ورود و تنظیمات کلاینت ارائه می‌دهند. برخی از این هدرها به سرور کمک می‌کنند تا کاربر را شناسایی یا ردیابی کند؛ حتی زمانی که ورود (Login) انجام نشده باشد.

در این پست، به بررسی ۷ هدر پرکاربرد در شناسایی کلاینت‌ها می‌پردازیم:

1️⃣ From
این هدر شامل آدرس ایمیل کاربر است و در گذشته به عنوان راهی برای شناسایی کاربران در نظر گرفته می‌شد.
🔴 اما امروز، مرورگرها معمولاً این هدر را ارسال نمی‌کنند چون می‌تواند منجر به سوءاستفاده‌هایی مانند اسپم یا فیشینگ شود.
🛑 در عمل، From یک هدر تقریباً منسوخ و ناامن محسوب می‌شود.

✍️نویسنده
@TryHackBox | The Chaos

#HTTP #Cookies #CyberSecurity
🔥4
🚀 پارت 1 (B)
بررسی HTTP Headers و شناسایی کاربران

2️⃣ User-Agent

شامل اطلاعات دقیق درباره مرورگر، نسخه آن، سیستم‌عامل و گاهی معماری سیستم است.
مثال:

Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36


🔍 کاربرد امنیتی: ترکیب این اطلاعات می‌تواند در ساخت یک پروفایل نسبی از کلاینت استفاده شود. اگر ترکیب User-Agent خاصی فقط توسط یک کاربر استفاده شود، سرور می‌تواند آن را شناسایی کند.

3️⃣ Referer

مشخص می‌کند که کاربر از کدام صفحه یا سایت به این صفحه فعلی رسیده است.

کاربردها:

* تحلیل رفتار کاربران
* ردگیری مسیر بازدید (Path Tracking)
* شناسایی منابع ترافیک (مثلاً از Google آمده یا از یک سایت تبلیغاتی)

⚠️ از منظر امنیتی، این هدر می‌تواند اطلاعات حساس (مانند توکن‌ها در URL) را نیز فاش کند، به همین دلیل در بسیاری از برنامه‌های امن، مقدار آن کنترل یا حذف می‌شود.

4️⃣ Accept-Language

مشخص می‌کند زبان‌های ترجیحی کاربر چیست. برای مثال:

Accept-Language: fa-IR,fa;q=0.9,en-US;q=0.8,en;q=0.7


🌐 کاربردها:

* نمایش خودکار سایت به زبان مناسب
* شناسایی منطقه جغرافیایی کاربر

🎯 در کنار IP و User-Agent می‌تواند بخشی از پروفایل شناسایی کاربر را شکل دهد.

5️⃣ Accept

این هدر مشخص می‌کند که کلاینت چه نوع محتواهایی را پشتیبانی می‌کند (مثلاً HTML، JSON یا XML).
نمونه:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8


🧩 اگرچه نقش مستقیمی در شناسایی ندارد، ولی ترکیب خاص مقادیر این هدر می‌تواند به‌صورت غیرمستقیم در Fingerprinting کاربر مفید باشد.

6️⃣ Accept-Encoding

بیان می‌کند که چه الگوریتم‌های فشرده‌سازی (مثل gzip یا br) توسط کلاینت پشتیبانی می‌شوند.

🛡 اگرچه هدف اصلی آن کاهش حجم پاسخ است، اما باز هم می‌تواند بخشی از اثر انگشت مرورگر (Browser Fingerprint) را بسازد.

7️⃣ DNT (Do Not Track)

این هدر اعلام می‌کند که آیا کاربر می‌خواهد ردیابی نشود (Do Not Track).
مقدار آن معمولاً 1 برای فعال‌بودن یا 0 برای غیرفعال‌بودن است.

🚫 این هدر غیرالزامی و داوطلبانه است، و بسیاری از سرورها آن را نادیده می‌گیرند.

📌 جمع‌بندی:
درست است که هیچ‌کدام از این هدرها به‌تنهایی برای شناسایی دقیق کافی نیستند، اما ترکیب آن‌ها می‌تواند به ساخت اثر انگشت دیجیتال (Fingerprint) کمک کند. این روش‌ها پایه بسیاری از سامانه‌های تشخیص تقلب، تبلیغات هدفمند، یا حتی حملات مبتنی بر شناسایی مرورگر هستند.

✍️نویسنده
@TryHackBox | The Chaos

#HTTP #Cookies #CyberSecurity
9🔥1🙏1
🚀 پارت 2 (A)
شناسایی کاربران با آدرس IP
یکی از ساده‌ترین و قدیمی‌ترین روش‌ها برای شناسایی کاربران در وب، استفاده از آدرس IP کلاینت است. زمانی طراحان اولیه وب تصور می‌کردند که IP می‌تواند نشان‌دهنده هویت یک کاربر باشد؛ چون فرض بر این بود که هر کاربر یک IP منحصر‌به‌فرد دارد.

اما در دنیای واقعی، این فرض بسیار ناپایدار و پرایراد است. چرا؟

⚠️ محدودیت‌های جدی در استفاده از IP برای شناسایی کاربران:

1️⃣ اشتراک‌گذاری IP توسط چند کاربر
اگر چند کاربر از یک کامپیوتر یا شبکه (مثلاً کافی‌نت یا دانشگاه) استفاده کنند، همگی از یک آدرس IP بیرونی دیده می‌شوند. بنابراین شما کاربر را نمی‌شناسید، بلکه فقط دستگاه یا شبکه‌ را تشخیص می‌دهید.

✍️نویسنده
@TryHackBox | The Chaos

#HTTP #Cookies #CyberSecurity
👍5
🚀 پارت 2 (B)
شناسایی کاربران با آدرس IP

2️⃣ تخصیص پویا (Dynamic IP)

اکثر سرویس‌دهنده‌های اینترنت (ISP) به کاربران خود هر بار که به اینترنت متصل می‌شوند، یک IP جدید اختصاص می‌دهند. بنابراین:

* امروز یک کاربر با IP A متصل می‌شود،
* فردا همان کاربر با IP B.

🔁 این یعنی IP نمی‌تواند به‌تنهایی برای شناسایی کاربران در جلسات مختلف قابل اعتماد باشد.

3️⃣ استفاده از NAT (ترجمه آدرس شبکه)

در بسیاری از شبکه‌های خانگی یا سازمانی، ده‌ها دستگاه از طریق یک مودم و با استفاده از تکنولوژی NAT به اینترنت متصل می‌شوند. در نتیجه:

* همه دستگاه‌ها از نظر بیرونی یک IP مشترک دارند،
* اما در پشت صحنه، IP داخلی آن‌ها متفاوت است مانند زیر
192.168.x.x

📌 از دید سرور، همه آن کاربران یکی دیده می‌شوند!

4️⃣ پنهان‌سازی IP با پروکسی یا گیت‌وی

بسیاری از کاربران از پروکسی‌ها، گیت‌وی‌ها یا VPN استفاده می‌کنند که ارتباط را از طرف آن‌ها ارسال می‌کند. در این حالت، سرور فقط آدرس IP واسطه را می‌بیند نه آدرس واقعی کلاینت را.

برخی پراکسی‌ها برای شفاف‌سازی، هدرهایی مثل:

X-Forwarded-For
Client-IP


اضافه می‌کنند که ممکن است آدرس IP واقعی کاربر را نشان دهند. ولی این هدرها به راحتی قابل جعل (Spoof) هستند و قابل اعتماد صددرصدی نیستند.

💡 آیا هنوز از IP در امنیت استفاده می‌شود؟

بله! با وجود تمام محدودیت‌ها، بسیاری از وب‌سایت‌ها هنوز از IP برای:

* بررسی ناهنجاری‌ها (مثلاً تغییر ناگهانی IP در نشست)
* اعمال محدودیت‌های جغرافیایی (Geo-blocking)
* کنترل دسترسی‌های خاص در اینترانت‌ها

استفاده می‌کنند. اما باید توجه داشت که IP باید فقط بخشی از یک مکانیزم ترکیبی شناسایی باشد، نه ابزار اصلی.

📌 جمع‌بندی:
آدرس IP به‌تنهایی برای شناسایی دقیق کاربر کافی نیست، و اگرچه در بعضی کاربردها مفید است، اما در شبکه‌های مدرن، استفاده صرف از آن یک نقطه ضعف امنیتی و شناختی خواهد بود.

✍️نویسنده
@TryHackBox | The Chaos

#HTTP #Cookies #CyberSecurity
6