Try Hack Box – Telegram
Try Hack Box
5.77K subscribers
682 photos
65 videos
123 files
689 links
1 Nov 2020
1399/08/11
Learn penetration testing & Red Team
https://youtube.com/@tryhackbox
Channels :
@TryHackBoxOfficial ( RoadMap )
@TryHackBoxStory ( Story Hacking )
Contact : @ThbxSupport
Download Telegram
Try Hack Box
شکل 1.1 جدول نشان دهنده کاراکترهایی است که نیاز به رمزگذاری دارند @TryHackBox
شکل 1.1 [ https://perishablepress.com/stop-using-unsafe-characters-in urls/ ] نموداری را نشان می دهد که کاراکترهایی را توضیح می دهد که می توان با آنها رفتار کرد.
"ایمن" و آنهایی که باید رمزگذاری شوند.
شایان ذکر است که کاراکترهای رزرو شده تنها زمانی نیاز به رمزگذاری دارند که فراتر از هدف تعریف شده خود استفاده شوند. بیایید انواع اصلی رمزگذاری داده مورد استفاده در برنامه های وب را مورد بحث قرار دهیم:
• URL encoding
• HTML encoding
• Base 64 encoding
• Unicode encoding

@TryHackBox
👎1
Try Hack Box
شکل 1.1 [ https://perishablepress.com/stop-using-unsafe-characters-in urls/ ] نموداری را نشان می دهد که کاراکترهایی را توضیح می دهد که می توان با آنها رفتار کرد. "ایمن" و آنهایی که باید رمزگذاری شوند. شایان ذکر است که کاراکترهای رزرو شده تنها زمانی نیاز به…
URL Encoding

رمزگذاری URL، همچنین به عنوان رمزگذاری درصد شناخته می شود، پروسسی است که برای رمزگذاری کاراکترهای رزرو شده در URL استفاده می شود. در رمزگذاری URL، کاراکترها بخشی از آن نیستند مجموعه مجاز برای URL ها با یک نماد درصد (%) و به دنبال آن مقدار هگزادسیمال آنها جایگزین می شود. به عنوان مثال، کاراکتر علامت ("&") معمولا به عنوان جداکننده در یک رشته کوئری استفاده می شود، باید برای جلوگیری از ابهامات کدگذاری شود. برای مثال URL زیر را در نظر بگیرید:

مثال

https://example.com/login.php?username=tmgm&password=t&mgm

در این مثال، کلمه عبور حاوی علامت "&" است، که اگر کدگذاری نشده باشد به عنوان یک پارامتر در نظر گرفته می شود و رمز عبور را روی "t" و "mgm" تنظیم می کند. برای جلوگیری از این امر، علامت "&" به عنوان "% 26" کدگذاری می شود، که منجر به URL نهایی می شود:

مثال

https://example.com/login.php?username=tmgm&password=t
%26mgm

در اینجا جدول 1.2 نشان دهنده کاراکترهای رایج رمزگذاری شده و نسخه های رمزگذاری شده آنها است:

Double Encoding

در کدگذاری مضاعف، کاراکترها دو بار رمزگذاری می‌شوند: سطح اول رمزگذاری، کاراکتر را به شکل درصد رمزگذاری شده تبدیل می‌کند. سطح دوم رمزگذاری برای کاراکترهای درصد رمزگذاری شده اعمال می شود. به عبارت دیگر، این

@TryHackBox
👎1
Try Hack Box
جدول 1.2 نویسه های رایج رمزگذاری شده و نسخه های رمزگذاری شده @TryHackBox
به این معنی است که به خود علامت درصد (%) اعمال می شود، همراه با مقدار هگزادسیمال کاراکتر رمزگذاری شده بار دیگر کدگذاری می شود.

برای مثال، اگر می‌خواهید کاراکتر «>» را دوبار رمزگذاری کنید، ابتدا آن را به صورت %3C رمزگذاری می‌کنید. سپس، «%» را به صورت %25 رمزگذاری می‌کنید، که در نتیجه %253C به صورت double-encoded  شده است.

این یک تکنیک رایج است که می تواند برای بایپس کردن WAF ها و فیلترهای سطح برنامه که URL ها را یک بار رمزگشایی می کنند، استفاده شود. اگر یک WAF فقط یک بار رمزگشایی کند، %253C را بی‌ضرر می‌بیند، اما متوجه نمی‌شود که رمزگشایی دوم آن را به کاراکتر «>» تبدیل می‌کند. بعداً به این تکنیک ها خواهیم پرداخت.

@TryHackBox
👎1
Try Hack Box
به این معنی است که به خود علامت درصد (%) اعمال می شود، همراه با مقدار هگزادسیمال کاراکتر رمزگذاری شده بار دیگر کدگذاری می شود. برای مثال، اگر می‌خواهید کاراکتر «>» را دوبار رمزگذاری کنید، ابتدا آن را به صورت %3C رمزگذاری می‌کنید. سپس، «%» را به صورت %25 رمزگذاری…
HTML Encoding

در HTML، کاراکترهای خاص معانی خاصی دارند و در صورت عدم استفاده صحیح می توانند منجر به ابهاماتی شوند. برای مثال، کاراکترهای "<" و ">" می توانند باز و بسته شدن یک تگ HTML را نشان دهند. برای اطمینان از اینکه این کاراکترها در قالب متنی نمایش داده می شوند، به جای اینکه به عنوان نحو HTML تفسیر شوند، باید HTML کدگذاری شوند.

رمزگذاری HTML شامل جایگزینی این کاراکترهای خاص با موجودیت های کاراکتر است. به عنوان مثال، علامت کمتر از «<» در HTML را می توان با «&lt» جایگزین کرد، و برای علامت بزرگتر از «>»، از «&gt» استفاده می کنیم. علاوه بر این، رمزگذاری HTML فقط محدود به کاراکترهایی نیست که معنای خاصی در نحو HTML دارند. همچنین می تواند کاراکترهایی را نشان دهد که به راحتی در صفحه کلیدهای استاندارد در دسترس نیستند. به عنوان مثال، نماد حق چاپ "©" را می توان در HTML به عنوان "&copy" نشان داد.

طبق مشخصات HTML، همه ارجاعات کاراکتر باید با علامت "&" شروع شوند، این می تواند با تغییرات متعددی مانند رمزگذاری اعشاری و هگزادسیمال دنبال شود. در اینجا روش های مختلفی برای نشان دادن این کاراکتر ها وجود دارد.
@TryHackBox
Try Hack Box
جدول 1.3 روش های مختلف برای نشان دادن این شخصیت ها نکته: از جدول می بینید که می توانیم از صفرهای ابتدایی در اشکال اعشاری و هگزادسیمال استفاده کنیم. @TryHackBox
Base64 Encoding

از رمزگذاری Base64 می توان برای نمایش داده های باینری به صورت یک رشته ASCII استفاده کرد ‌.

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

به عنوان مثال، رشته "Hello\nWorld" را در نظر بگیرید، جایی که "\n" نشان دهنده یک کاراکتر خط جدید است. رشته به صورت زیر treated می شود:


مثال

Hello
World

این رشته شامل یک خط جدید بعد از حرف "o" است. در ASCII، این رشته با مقادیر decimal نشان داده می شود.

مثال

72 101 108 108 111 10 119 111 114 108 100

در این مثال، دنباله بایت "10" نشان دهنده کاراکتر "newline" است. سیستم های ایمیل ممکن است این کاراکتر را به درستی تفسیر نکنند. از این رو، با رمزگذاری این کاراکترها با استفاده از کدگذاری base64، می‌توانیم آنها را به عنوان کاراکترهای ASCII نشان دهیم، بنابراین کاراکترهایی مانند newline که سیستم‌های ایمیل مشکل‌ ساز هستند حذف می‌شوند.

پشتیبانی از کدگذاری و رمزگشایی base64 به طور گسترده در تمام زبان های برنامه نویسی وب در دسترس است. جاوا اسکریپت توابع “btoa()” و “atob()” را برای مدیریت base64 فراهم می کند.

شایان ذکر است که base64 معمولا توسط توسعه دهندگان اشتباه گرفته می شود به عنوان یک طرح encryption به جای یک طرح encoding. حتی در تعامل‌های دنیای واقعی، ممکن است مواردی را بیابید که اطلاعات حساس با base64 کدگذاری می‌شوند و در نتیجه داده‌های حساس در معرض دید قرار می‌گیرند. شکل 1.2 کدگذاری/رمزگشایی base64 را با استفاده از توابع "btoa" و "atob" نشان می دهد:
Try Hack Box
شکل 1.2 کدگذاری/رمزگشایی Base64 @TryHackBox
Unicode Encoding

یونیکد شامل تعداد زیادی کاراکتر از زبان های متعدد در سراسر جهان است. به عنوان مثال، اگر بخواهید متن عربی یا فارسی را در صفحه وب قرار دهید، متوجه خواهید شد که این کاراکترها بخشی از ASCII نیستند، زیرا اساساً برای انگلیسی ساخته شده است و مجموعه کاراکترهای محدودی دارد. اینجاست که یونیکد وارد عمل می شود.

برای ترسیم موثر چنین مجموعه بزرگی از کاراکترها، یونیکد از چندین کاراکتر استفاده می کند کدگذاری هایی مانند UTF-8، UTF-16 و UTF-32. بیایید بررسی کنیم که چگونه یونیکد می تواند برای نشان دادن کاراکترهای رایج استفاده شود:

@TryHackBox
👍1
Try Hack Box
جدول 1.4 یونیکد برای نشان دادن کاراکترهای رایج @TryHackBox
درک نحوه عملکرد کدگذاری ها می تواند کمک بزرگی در بایپس کردن WAF ها و فیلترهایی باشد که به لیست سیاه متکی هستند.

@TryHackBox
👍1
🖥 Reverse-Engineering
- ابزاری برای مهندسی معکوس

Reverse-Engineering
یک آموزش جامع مهندسی معکوس است که معماری های x86، x64، 32 بیتی ARM و 64 بیتی ARM را پوشش می دهد.

- این ابزار به شما امکان می دهد فرآیندی ایجاد کنید که توسط آن یک شی ساخته شده توسط انسان تجزیه می شود تا طراحی، معماری، کد آن را آشکار کند یا دانش را از شی استخراج کند . این شبیه به تحقیقات علمی است، تنها تفاوت این است که تحقیقات علمی در یک پدیده طبیعی انجام می شود.

https://github.com/mytechnotalent/Reverse-Engineering?tab=readme-ov-file
#Tools #Reverse
@TryHackBox
Try Hack Box
درک نحوه عملکرد کدگذاری ها می تواند کمک بزرگی در بایپس کردن WAF ها و فیلترهایی باشد که به لیست سیاه متکی هستند. @TryHackBox
مقدمه ای بر مرورگرها

مرورگرها به عنوان رابطی برای دسترسی به برنامه های کاربردی وب عمل می کنند و وظیفه تفسیر و نمایش محتوا به کاربر نهایی را بر عهده دارند. آنها مسئول اصلی rendering کردن صفحات با پردازش HTML، CSS و جاوا اسکریپت هستند. در چارچوب چشم انداز امنیت وب در حال تحول، مرورگرهای وب نقش خود را فراتر از rendering کردن صفحات و به طور مداوم معرفی کنترل های امنیتی برای محافظت از حریم خصوصی و امنیت کاربران گسترش داده اند.

به عنوان مثال، برای محافظت از حریم خصوصی کاربر، بسیاری از مرورگرها اقدامات داخلی مانند کنترل‌های کوکی‌های پیشرفته، حالت‌های مرور خصوصی، مسدود کردن ردیاب‌های شخص ثالث و بسیاری موارد دیگر را ارائه می‌کنند. از نظر امنیتی، مرورگرها سیاست‌های امنیتی داخلی خاصی مانند سیاست همان منبع (SOP) را پیاده‌سازی کرده‌اند، که نحوه تعامل محتوا از مبداهای مختلف در مرورگر را محدود می‌کند، در حالی که چندین مکانیسم امنیتی اختیاری در قالب هدر پیاده‌سازی می‌شوند. و می تواند توسط مدیران وب برای افزایش امنیت استفاده شود.
مرورگرها از افزونه‌ها و افزونه‌هایی پشتیبانی می‌کنند که قابلیت‌های بیشتری مانند مسدود کردن تبلیغات، مدیریت رمز عبور و غیره را ارائه می‌دهند. در حالی که این قابلیت‌های اضافی می‌توانند امنیت کاربر را بهبود بخشند، این قابلیت‌ها نیز می‌توانند توسط یک مهاجم مسلح شوند و به عنوان یک نقطه ضعف عمل کنند. بحث در مورد طول مرورگر یک موضوع پیچیده است و خارج از محدوده این بخش است. شکل 1.3 نمای کلی سطح بالایی از اجزای اصلی مرورگر را نشان می دهد:
@TryHackBox
👍1
Try Hack Box
شکل 1.3 نمای اجمالی سطح بالا از قسمت های داخلی مرورگر @TryHackBox
اجازه دهید به طور خلاصه در مورد هر یک از اجزاء صحبت کنیم
Try Hack Box
اجازه دهید به طور خلاصه در مورد هر یک از اجزاء صحبت کنیم
رابط کاربری

این نشان دهنده HTML و CSS است و محتوای تجزیه شده را روی صفحه نمایش می دهد. ابزارهای مرورگر شامل همه چیزهایی است که می بینید به جز پنجره هایی که صفحه وب در آن ارائه می شود. به عنوان مثال، نوار آدرس، دکمه های برگشت/به جلو، و منوی نشانه گذاری، همه بخش های رابط کاربری هستند.


Browser Engine

به عنوان رابط بین رابط کاربری و موتور rendering عمل می کند. به عنوان مثال، هنگامی که یک کاربر با رابط مرورگر تعامل می کند، مانند تایپ یک URL، کلیک کردن بر روی لینک، یا تعامل با فرم، موتور مرورگر مسئول پردازش دستور است.

Rendering Engine

موتور Rendering بخشی جدایی ناپذیر از مرورگرهای وب است، اساساً HTML، CSS و جاوا اسکریپت را به صفحات بصری و تعاملی تبدیل می کند. هر مرورگر از یک موتور خاص استفاده می کند: کروم و اپرا از Blink استفاده می کنند، فایرفاکس از Gecko استفاده می کند و Safari روی WebKit کار می کند. این موتورها نشانه‌گذاری و اسکریپت‌نویسی را پردازش می‌کنند تا Document Object Model (DOM) صفحه وب را ایجاد کنند، سبک‌ها را از CSS اعمال می‌کنند، جاوا اسکریپت را برای محتوای پویا اجرا می‌کنند، و سپس طرح‌بندی و نمایش بصری صفحه را روی صفحه نمایش می‌دهند.
با توجه به اینکه هر مرورگر وب از یک موتور Rendering خاص استفاده می‌کند، آسیب‌پذیری در موتوری مانند Blink، Gecko یا WebKit می‌تواند همه مرورگرهای متکی به آن موتور خاص را در معرض خطرات امنیتی بالقوه قرار دهد.

Networking

این کامپوننت مسئول برقراری تماس های شبکه اصلی مانند HTTP و DNS است.

UI Backend

این برای دسترسی به روش های سیستم عامل اساسی مانند جعبه های ترکیبی، جعبه های کاربر و غیره استفاده می شود.

JavaScript Interpreter

این جزء مسئول تجزیه و اجرای کد جاوا اسکریپت موجود در صفحات وب است.

Data Stroge

این مؤلفه مسئول ذخیره سازی داده ها در سمت سرویس گیرنده است. این شامل مکانیسم هایی مانند کوکی ها، ذخیره سازی وب، IndexedDB، WebSQL و FileSystem است.

سیاست ها و مکانیسم های امنیتی مرورگر اصلی

فروشندگان مرورگر چندین سیاست و مکانیسم امنیتی را برای محافظت از کاربران خود معرفی کرده اند. این خط‌مشی‌ها به‌طور پیش‌فرض اجرا می‌شوند یا ممکن است توسط هر مرورگر به روشی متفاوت اجرا شوند. فروشندگان مرورگر برای محافظت از کاربران خود، مجموعه وسیعی از سیاست ها و مکانیسم های امنیتی را پیاده سازی کرده اند. این خط‌مشی‌ها از کنترل نوع منبعی که می‌تواند در سطح granular  بارگذاری شود تا اعمال انزوا شدید بین وب‌سایت‌های مختلف را شامل می‌شود.

@TryHackBox
Media is too big
VIEW IN TELEGRAM
خوندن چت‌های ناشناس تلگرام

@TryHackBox
Try Hack Box
رابط کاربری این نشان دهنده HTML و CSS است و محتوای تجزیه شده را روی صفحه نمایش می دهد. ابزارهای مرورگر شامل همه چیزهایی است که می بینید به جز پنجره هایی که صفحه وب در آن ارائه می شود. به عنوان مثال، نوار آدرس، دکمه های برگشت/به جلو، و منوی نشانه گذاری، همه…
Same-Origin Policy
(SOP)
یکی از اساسی ترین و اصلی ترین سیاست ها در مرورگرها است. این خط‌مشی در اصل از دسترسی صفحات وب در یک مبدا جلوگیری می‌کند. Origin معمولاً به عنوان ترکیبی از طرح، دامنه و پورت گفته می شود. به عبارت ساده، اگر طرح، دامنه و شماره پورت آنها مطابقت داشته باشد، دو صفحه وب از یک مبدا در نظر گرفته می شوند.

در اینجا لازم به ذکر است که SOP ماهیت ناسازگار و ناهمگن است و از این رو اجرای آن در مرورگرها ممکن است متفاوت باشد. یک مثال از گذشته اینترنت اکسپلورر شامل یک طرح و یک هاست است. با این حال، پورت ها در نظر گرفته نمی شوند.

@TryHackBox
👎1