Try Hack Box
EVOLUTION OF MODERN WEB APPLICATIONS در طول یک دهه گذشته یا بیشتر، وب دستخوش تغییرات عمده ای شده است از پشته فناوری، معماری و زیرساخت. استفاده از خدمات وب و RESTful API (رابط برنامه نویسی برنامه) گسترده شده است و یکپارچگی بین سرویس های ناهمگن را تسهیل می…
Single-Page Applications (SPAs)
اپلیکیشن های Single-Page اخیراً رایج شده اند و برای بهبود تجربه کاربر در نظر گرفته شده اند. برخلاف وبسایتهای traditional، هر بار که یک فرم را پیمایش یا ارسال میکنید، یک صفحه جدید از سرور دریافت میشود. SPA در ابتدا کل صفحه وب و تمام اجزای آن را فقط یک بار بارگذاری می کند. پس از بارگذاری اولیه، SPA به صورت پویا محتوا را در همان صفحه به روز می کند و نیاز به بارگذاری مجدد صفحه وب را از بین می برد.
SPA
ها اغلب برای واکشی داده ها به API های RESTful یا Graph API تکیه می کنند و آنها را برای ادغام با معماری میکروسرویس مناسب می کند. آنها با فریم ورک های جاوا اسکریپت مانند AngularJS، React و بسیاری دیگر ساخته شده اند. به دلیل اتکای زیاد به جاوا اسکریپت برای ارائه و به روز رسانی پویا محتوا، SPA ها اغلب در برابر اسکریپت های متقابل مبتنی بر DOM آسیب پذیر هستند.
Use of Cloud Components
رایانش ابری به طور قابل توجهی توسعه میکروسرویس ها را با افزایش مقیاس پذیری تسهیل کرده است. فن آوری هایی مانند Docker و Kubernetes برای مدیریت ریزسرویس ها و ارائه کانتینر برای تفکیک و مقیاس بندی موثر بسیار مهم هستند.
به طور مشابه، در شیوه های توسعه وب، فرهنگ DevOps برجسته شده است و بر همکاری و اتوماسیون بین تیم های توسعه و عملیات تمرکز دارد. در تکمیل این، خطوط لوله CI/CD فرآیند تحویل نرمافزار را خودکار میکند و انتشار سریعتر و کارآمدتر را در یک محیط کانتینری امکانپذیر میکند.
Serverless Architecture
به طور فزاینده ای در زمینه محبوبیت پیدا کرده است
SPA
ها و استقرار میکروسرویس ها. علیرغم نامش، معماری Serverless Architecture شامل سرورها می شود. در این مدل، ارائه دهنده ابر مسئولیت مدیریت سرورها را بر عهده دارد. توسعه دهندگان کد می نویسند و فقط برای زمان اجرای کد پرداخت می کنند. Serverless Architecture مجموعه ای از چالش های امنیتی خاص خود را دارد. در بخش سرویس های وب به آن خواهیم پرداخت.
UNDERSTANDING DATA ENCODING
رمزگذاری در برنامه های کاربردی وب برای اطمینان از اینکه ارتباطات از مجموعه ای مشخص از قوانین و استانداردها پیروی می کند استفاده می شود. URL ها فقط می توانند شامل مجموعه محدودی از کاراکترها باشند که عمدتاً حروف عددی (حروف و اعداد) و special characters هستند. وقتی یک ورودی خارج از این مجموعه مجاز درج می شود، این کاراکترها باید برای جلوگیری از ابهام کدگذاری شوند.
فرآیند رمزگذاری و رمزگشایی عموماً در پشت صحنه اتفاق می افتد: کاربران می توانند کاراکترهای مختلفی را وارد کنند و مرورگرها و برنامه ها از رمزگذاری و رمزگشایی مراقبت می کنند. هنگامی که کاربر یک کاراکتر غیرمجاز را در مرورگر ارائه میکند، قبل از پردازش درخواست، به طور خودکار کدگذاری میشود.
@TryHackBox
اپلیکیشن های Single-Page اخیراً رایج شده اند و برای بهبود تجربه کاربر در نظر گرفته شده اند. برخلاف وبسایتهای traditional، هر بار که یک فرم را پیمایش یا ارسال میکنید، یک صفحه جدید از سرور دریافت میشود. SPA در ابتدا کل صفحه وب و تمام اجزای آن را فقط یک بار بارگذاری می کند. پس از بارگذاری اولیه، SPA به صورت پویا محتوا را در همان صفحه به روز می کند و نیاز به بارگذاری مجدد صفحه وب را از بین می برد.
SPA
ها اغلب برای واکشی داده ها به API های RESTful یا Graph API تکیه می کنند و آنها را برای ادغام با معماری میکروسرویس مناسب می کند. آنها با فریم ورک های جاوا اسکریپت مانند AngularJS، React و بسیاری دیگر ساخته شده اند. به دلیل اتکای زیاد به جاوا اسکریپت برای ارائه و به روز رسانی پویا محتوا، SPA ها اغلب در برابر اسکریپت های متقابل مبتنی بر DOM آسیب پذیر هستند.
Use of Cloud Components
رایانش ابری به طور قابل توجهی توسعه میکروسرویس ها را با افزایش مقیاس پذیری تسهیل کرده است. فن آوری هایی مانند Docker و Kubernetes برای مدیریت ریزسرویس ها و ارائه کانتینر برای تفکیک و مقیاس بندی موثر بسیار مهم هستند.
به طور مشابه، در شیوه های توسعه وب، فرهنگ DevOps برجسته شده است و بر همکاری و اتوماسیون بین تیم های توسعه و عملیات تمرکز دارد. در تکمیل این، خطوط لوله CI/CD فرآیند تحویل نرمافزار را خودکار میکند و انتشار سریعتر و کارآمدتر را در یک محیط کانتینری امکانپذیر میکند.
Serverless Architecture
به طور فزاینده ای در زمینه محبوبیت پیدا کرده است
SPA
ها و استقرار میکروسرویس ها. علیرغم نامش، معماری Serverless Architecture شامل سرورها می شود. در این مدل، ارائه دهنده ابر مسئولیت مدیریت سرورها را بر عهده دارد. توسعه دهندگان کد می نویسند و فقط برای زمان اجرای کد پرداخت می کنند. Serverless Architecture مجموعه ای از چالش های امنیتی خاص خود را دارد. در بخش سرویس های وب به آن خواهیم پرداخت.
UNDERSTANDING DATA ENCODING
رمزگذاری در برنامه های کاربردی وب برای اطمینان از اینکه ارتباطات از مجموعه ای مشخص از قوانین و استانداردها پیروی می کند استفاده می شود. URL ها فقط می توانند شامل مجموعه محدودی از کاراکترها باشند که عمدتاً حروف عددی (حروف و اعداد) و special characters هستند. وقتی یک ورودی خارج از این مجموعه مجاز درج می شود، این کاراکترها باید برای جلوگیری از ابهام کدگذاری شوند.
فرآیند رمزگذاری و رمزگشایی عموماً در پشت صحنه اتفاق می افتد: کاربران می توانند کاراکترهای مختلفی را وارد کنند و مرورگرها و برنامه ها از رمزگذاری و رمزگشایی مراقبت می کنند. هنگامی که کاربر یک کاراکتر غیرمجاز را در مرورگر ارائه میکند، قبل از پردازش درخواست، به طور خودکار کدگذاری میشود.
@TryHackBox
👍1👎1
Try Hack Box
Single-Page Applications (SPAs) اپلیکیشن های Single-Page اخیراً رایج شده اند و برای بهبود تجربه کاربر در نظر گرفته شده اند. برخلاف وبسایتهای traditional، هر بار که یک فرم را پیمایش یا ارسال میکنید، یک صفحه جدید از سرور دریافت میشود. SPA در ابتدا کل صفحه…
شکل 1.1 جدول نشان دهنده کاراکترهایی است که نیاز به رمزگذاری دارند
@TryHackBox
@TryHackBox
👍2👎1
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
"ایمن" و آنهایی که باید رمزگذاری شوند.
شایان ذکر است که کاراکترهای رزرو شده تنها زمانی نیاز به رمزگذاری دارند که فراتر از هدف تعریف شده خود استفاده شوند. بیایید انواع اصلی رمزگذاری داده مورد استفاده در برنامه های وب را مورد بحث قرار دهیم:
• URL encoding
• HTML encoding
• Base 64 encoding
• Unicode encoding
@TryHackBox
Perishablepress
(Please) Stop Using Unsafe Characters in URLs | Perishable Press
Just as there are specifications for designing with CSS, HTML, and JavaScript, there are specifications for working with URIs/URLs. The Internet...
👎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
رمزگذاری 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
URL Encoding رمزگذاری URL، همچنین به عنوان رمزگذاری درصد شناخته می شود، پروسسی است که برای رمزگذاری کاراکترهای رزرو شده در URL استفاده می شود. در رمزگذاری URL، کاراکترها بخشی از آن نیستند مجموعه مجاز برای URL ها با یک نماد درصد (%) و به دنبال آن مقدار هگزادسیمال…
جدول 1.2 نویسه های رایج رمزگذاری شده و نسخه های رمزگذاری شده
@TryHackBox
@TryHackBox
👎1
Try Hack Box
جدول 1.2 نویسه های رایج رمزگذاری شده و نسخه های رمزگذاری شده @TryHackBox
به این معنی است که به خود علامت درصد (%) اعمال می شود، همراه با مقدار هگزادسیمال کاراکتر رمزگذاری شده بار دیگر کدگذاری می شود.
برای مثال، اگر میخواهید کاراکتر «>» را دوبار رمزگذاری کنید، ابتدا آن را به صورت %3C رمزگذاری میکنید. سپس، «%» را به صورت %25 رمزگذاری میکنید، که در نتیجه %253C به صورت double-encoded شده است.
این یک تکنیک رایج است که می تواند برای بایپس کردن WAF ها و فیلترهای سطح برنامه که URL ها را یک بار رمزگشایی می کنند، استفاده شود. اگر یک WAF فقط یک بار رمزگشایی کند، %253C را بیضرر میبیند، اما متوجه نمیشود که رمزگشایی دوم آن را به کاراکتر «>» تبدیل میکند. بعداً به این تکنیک ها خواهیم پرداخت.
@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 را می توان با «<» جایگزین کرد، و برای علامت بزرگتر از «>»، از «>» استفاده می کنیم. علاوه بر این، رمزگذاری HTML فقط محدود به کاراکترهایی نیست که معنای خاصی در نحو HTML دارند. همچنین می تواند کاراکترهایی را نشان دهد که به راحتی در صفحه کلیدهای استاندارد در دسترس نیستند. به عنوان مثال، نماد حق چاپ "©" را می توان در HTML به عنوان "©" نشان داد.
طبق مشخصات HTML، همه ارجاعات کاراکتر باید با علامت "&" شروع شوند، این می تواند با تغییرات متعددی مانند رمزگذاری اعشاری و هگزادسیمال دنبال شود. در اینجا روش های مختلفی برای نشان دادن این کاراکتر ها وجود دارد.
@TryHackBox
در HTML، کاراکترهای خاص معانی خاصی دارند و در صورت عدم استفاده صحیح می توانند منجر به ابهاماتی شوند. برای مثال، کاراکترهای "<" و ">" می توانند باز و بسته شدن یک تگ HTML را نشان دهند. برای اطمینان از اینکه این کاراکترها در قالب متنی نمایش داده می شوند، به جای اینکه به عنوان نحو HTML تفسیر شوند، باید HTML کدگذاری شوند.
رمزگذاری HTML شامل جایگزینی این کاراکترهای خاص با موجودیت های کاراکتر است. به عنوان مثال، علامت کمتر از «<» در HTML را می توان با «<» جایگزین کرد، و برای علامت بزرگتر از «>»، از «>» استفاده می کنیم. علاوه بر این، رمزگذاری HTML فقط محدود به کاراکترهایی نیست که معنای خاصی در نحو HTML دارند. همچنین می تواند کاراکترهایی را نشان دهد که به راحتی در صفحه کلیدهای استاندارد در دسترس نیستند. به عنوان مثال، نماد حق چاپ "©" را می توان در HTML به عنوان "©" نشان داد.
طبق مشخصات HTML، همه ارجاعات کاراکتر باید با علامت "&" شروع شوند، این می تواند با تغییرات متعددی مانند رمزگذاری اعشاری و هگزادسیمال دنبال شود. در اینجا روش های مختلفی برای نشان دادن این کاراکتر ها وجود دارد.
@TryHackBox
Try Hack Box
HTML Encoding در HTML، کاراکترهای خاص معانی خاصی دارند و در صورت عدم استفاده صحیح می توانند منجر به ابهاماتی شوند. برای مثال، کاراکترهای "<" و ">" می توانند باز و بسته شدن یک تگ HTML را نشان دهند. برای اطمینان از اینکه این کاراکترها در قالب متنی نمایش داده…
جدول 1.3 روش های مختلف برای نشان دادن این شخصیت ها
نکته: از جدول می بینید که می توانیم از صفرهای ابتدایی در اشکال اعشاری و هگزادسیمال استفاده کنیم.
@TryHackBox
نکته: از جدول می بینید که می توانیم از صفرهای ابتدایی در اشکال اعشاری و هگزادسیمال استفاده کنیم.
@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" نشان می دهد:
از رمزگذاری 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
Base64 Encoding از رمزگذاری Base64 می توان برای نمایش داده های باینری به صورت یک رشته ASCII استفاده کرد . یکی از رایجترین کاربردهای base64 برای انتقال ایمن پیوستهای ایمیل است، زیرا سرورهای ایمیل اغلب نویسههای خاصی مانند خطوط جدید را تغییر میدهند یا…
شکل 1.2 کدگذاری/رمزگشایی Base64
@TryHackBox
@TryHackBox
Try Hack Box
شکل 1.2 کدگذاری/رمزگشایی Base64 @TryHackBox
Unicode Encoding
یونیکد شامل تعداد زیادی کاراکتر از زبان های متعدد در سراسر جهان است. به عنوان مثال، اگر بخواهید متن عربی یا فارسی را در صفحه وب قرار دهید، متوجه خواهید شد که این کاراکترها بخشی از ASCII نیستند، زیرا اساساً برای انگلیسی ساخته شده است و مجموعه کاراکترهای محدودی دارد. اینجاست که یونیکد وارد عمل می شود.
برای ترسیم موثر چنین مجموعه بزرگی از کاراکترها، یونیکد از چندین کاراکتر استفاده می کند کدگذاری هایی مانند UTF-8، UTF-16 و UTF-32. بیایید بررسی کنیم که چگونه یونیکد می تواند برای نشان دادن کاراکترهای رایج استفاده شود:
@TryHackBox
یونیکد شامل تعداد زیادی کاراکتر از زبان های متعدد در سراسر جهان است. به عنوان مثال، اگر بخواهید متن عربی یا فارسی را در صفحه وب قرار دهید، متوجه خواهید شد که این کاراکترها بخشی از ASCII نیستند، زیرا اساساً برای انگلیسی ساخته شده است و مجموعه کاراکترهای محدودی دارد. اینجاست که یونیکد وارد عمل می شود.
برای ترسیم موثر چنین مجموعه بزرگی از کاراکترها، یونیکد از چندین کاراکتر استفاده می کند کدگذاری هایی مانند UTF-8، UTF-16 و UTF-32. بیایید بررسی کنیم که چگونه یونیکد می تواند برای نشان دادن کاراکترهای رایج استفاده شود:
@TryHackBox
👍1
Try Hack Box
Unicode Encoding یونیکد شامل تعداد زیادی کاراکتر از زبان های متعدد در سراسر جهان است. به عنوان مثال، اگر بخواهید متن عربی یا فارسی را در صفحه وب قرار دهید، متوجه خواهید شد که این کاراکترها بخشی از ASCII نیستند، زیرا اساساً برای انگلیسی ساخته شده است و مجموعه…
جدول 1.4 یونیکد برای نشان دادن کاراکترهای رایج
@TryHackBox
@TryHackBox
Try Hack Box
جدول 1.4 یونیکد برای نشان دادن کاراکترهای رایج @TryHackBox
درک نحوه عملکرد کدگذاری ها می تواند کمک بزرگی در بایپس کردن WAF ها و فیلترهایی باشد که به لیست سیاه متکی هستند.
@TryHackBox
@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
- ابزاری برای مهندسی معکوس
Reverse-Engineering
یک آموزش جامع مهندسی معکوس است که معماری های x86، x64، 32 بیتی ARM و 64 بیتی ARM را پوشش می دهد.
- این ابزار به شما امکان می دهد فرآیندی ایجاد کنید که توسط آن یک شی ساخته شده توسط انسان تجزیه می شود تا طراحی، معماری، کد آن را آشکار کند یا دانش را از شی استخراج کند . این شبیه به تحقیقات علمی است، تنها تفاوت این است که تحقیقات علمی در یک پدیده طبیعی انجام می شود.
https://github.com/mytechnotalent/Reverse-Engineering?tab=readme-ov-file
#Tools #Reverse
@TryHackBox
GitHub
GitHub - mytechnotalent/Reverse-Engineering: A FREE comprehensive reverse engineering tutorial covering x86, x64, 32-bit/64-bit…
A FREE comprehensive reverse engineering tutorial covering x86, x64, 32-bit/64-bit ARM, 8-bit AVR and 32-bit RISC-V architectures. - mytechnotalent/Reverse-Engineering
Try Hack Box
درک نحوه عملکرد کدگذاری ها می تواند کمک بزرگی در بایپس کردن WAF ها و فیلترهایی باشد که به لیست سیاه متکی هستند. @TryHackBox
مقدمه ای بر مرورگرها
مرورگرها به عنوان رابطی برای دسترسی به برنامه های کاربردی وب عمل می کنند و وظیفه تفسیر و نمایش محتوا به کاربر نهایی را بر عهده دارند. آنها مسئول اصلی rendering کردن صفحات با پردازش HTML، CSS و جاوا اسکریپت هستند. در چارچوب چشم انداز امنیت وب در حال تحول، مرورگرهای وب نقش خود را فراتر از rendering کردن صفحات و به طور مداوم معرفی کنترل های امنیتی برای محافظت از حریم خصوصی و امنیت کاربران گسترش داده اند.
به عنوان مثال، برای محافظت از حریم خصوصی کاربر، بسیاری از مرورگرها اقدامات داخلی مانند کنترلهای کوکیهای پیشرفته، حالتهای مرور خصوصی، مسدود کردن ردیابهای شخص ثالث و بسیاری موارد دیگر را ارائه میکنند. از نظر امنیتی، مرورگرها سیاستهای امنیتی داخلی خاصی مانند سیاست همان منبع (SOP) را پیادهسازی کردهاند، که نحوه تعامل محتوا از مبداهای مختلف در مرورگر را محدود میکند، در حالی که چندین مکانیسم امنیتی اختیاری در قالب هدر پیادهسازی میشوند. و می تواند توسط مدیران وب برای افزایش امنیت استفاده شود.
مرورگرها از افزونهها و افزونههایی پشتیبانی میکنند که قابلیتهای بیشتری مانند مسدود کردن تبلیغات، مدیریت رمز عبور و غیره را ارائه میدهند. در حالی که این قابلیتهای اضافی میتوانند امنیت کاربر را بهبود بخشند، این قابلیتها نیز میتوانند توسط یک مهاجم مسلح شوند و به عنوان یک نقطه ضعف عمل کنند. بحث در مورد طول مرورگر یک موضوع پیچیده است و خارج از محدوده این بخش است. شکل 1.3 نمای کلی سطح بالایی از اجزای اصلی مرورگر را نشان می دهد:
@TryHackBox
مرورگرها به عنوان رابطی برای دسترسی به برنامه های کاربردی وب عمل می کنند و وظیفه تفسیر و نمایش محتوا به کاربر نهایی را بر عهده دارند. آنها مسئول اصلی rendering کردن صفحات با پردازش HTML، CSS و جاوا اسکریپت هستند. در چارچوب چشم انداز امنیت وب در حال تحول، مرورگرهای وب نقش خود را فراتر از rendering کردن صفحات و به طور مداوم معرفی کنترل های امنیتی برای محافظت از حریم خصوصی و امنیت کاربران گسترش داده اند.
به عنوان مثال، برای محافظت از حریم خصوصی کاربر، بسیاری از مرورگرها اقدامات داخلی مانند کنترلهای کوکیهای پیشرفته، حالتهای مرور خصوصی، مسدود کردن ردیابهای شخص ثالث و بسیاری موارد دیگر را ارائه میکنند. از نظر امنیتی، مرورگرها سیاستهای امنیتی داخلی خاصی مانند سیاست همان منبع (SOP) را پیادهسازی کردهاند، که نحوه تعامل محتوا از مبداهای مختلف در مرورگر را محدود میکند، در حالی که چندین مکانیسم امنیتی اختیاری در قالب هدر پیادهسازی میشوند. و می تواند توسط مدیران وب برای افزایش امنیت استفاده شود.
مرورگرها از افزونهها و افزونههایی پشتیبانی میکنند که قابلیتهای بیشتری مانند مسدود کردن تبلیغات، مدیریت رمز عبور و غیره را ارائه میدهند. در حالی که این قابلیتهای اضافی میتوانند امنیت کاربر را بهبود بخشند، این قابلیتها نیز میتوانند توسط یک مهاجم مسلح شوند و به عنوان یک نقطه ضعف عمل کنند. بحث در مورد طول مرورگر یک موضوع پیچیده است و خارج از محدوده این بخش است. شکل 1.3 نمای کلی سطح بالایی از اجزای اصلی مرورگر را نشان می دهد:
@TryHackBox
👍1
Try Hack Box
مقدمه ای بر مرورگرها مرورگرها به عنوان رابطی برای دسترسی به برنامه های کاربردی وب عمل می کنند و وظیفه تفسیر و نمایش محتوا به کاربر نهایی را بر عهده دارند. آنها مسئول اصلی rendering کردن صفحات با پردازش HTML، CSS و جاوا اسکریپت هستند. در چارچوب چشم انداز امنیت…
شکل 1.3 نمای اجمالی سطح بالا از قسمت های داخلی مرورگر
@TryHackBox
@TryHackBox
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
این نشان دهنده 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
معلوم شد رباتهای چت ناشناس، در حال ذخیره سازی اطلاعات شما هستند!
لینک کامل خبر
لینک کامل خبر
X (formerly Twitter)
یاشو (@voorivex) on X
۱۰ روز پیش امیر به ۳ تا از باتهای ناشناس نفوذ کرد و صحنههایی دیدیم که شکه شدیم، از ۱۴ میلیون یوزر، ۴۵۰ میلیمون چت، ۱۱ میلیون عکس و ۳ میلیون ویدیو ذخیره شده بود! یه فیچر داشت که یه یوزر رو flag میکرد، یعنی هر موقع پیغامی به شخص ارسال میشد طرف میفهمید /…
Try Hack Box
رابط کاربری این نشان دهنده HTML و CSS است و محتوای تجزیه شده را روی صفحه نمایش می دهد. ابزارهای مرورگر شامل همه چیزهایی است که می بینید به جز پنجره هایی که صفحه وب در آن ارائه می شود. به عنوان مثال، نوار آدرس، دکمه های برگشت/به جلو، و منوی نشانه گذاری، همه…
Same-Origin Policy
(SOP)
یکی از اساسی ترین و اصلی ترین سیاست ها در مرورگرها است. این خطمشی در اصل از دسترسی صفحات وب در یک مبدا جلوگیری میکند. Origin معمولاً به عنوان ترکیبی از طرح، دامنه و پورت گفته می شود. به عبارت ساده، اگر طرح، دامنه و شماره پورت آنها مطابقت داشته باشد، دو صفحه وب از یک مبدا در نظر گرفته می شوند.
در اینجا لازم به ذکر است که SOP ماهیت ناسازگار و ناهمگن است و از این رو اجرای آن در مرورگرها ممکن است متفاوت باشد. یک مثال از گذشته اینترنت اکسپلورر شامل یک طرح و یک هاست است. با این حال، پورت ها در نظر گرفته نمی شوند.
@TryHackBox
(SOP)
یکی از اساسی ترین و اصلی ترین سیاست ها در مرورگرها است. این خطمشی در اصل از دسترسی صفحات وب در یک مبدا جلوگیری میکند. Origin معمولاً به عنوان ترکیبی از طرح، دامنه و پورت گفته می شود. به عبارت ساده، اگر طرح، دامنه و شماره پورت آنها مطابقت داشته باشد، دو صفحه وب از یک مبدا در نظر گرفته می شوند.
در اینجا لازم به ذکر است که SOP ماهیت ناسازگار و ناهمگن است و از این رو اجرای آن در مرورگرها ممکن است متفاوت باشد. یک مثال از گذشته اینترنت اکسپلورر شامل یک طرح و یک هاست است. با این حال، پورت ها در نظر گرفته نمی شوند.
@TryHackBox
👎1