انواع آسیب پذیری های برنامه های تحت وب و وب سایت

0 69

فهرست

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

آسیب پذیری SQL Injection

تزریق SQL یا SQL Injection که به آن SQLi هم گفته می‌شود، یک آسیب پذیری وب است که به مهاجم اجازه مداخله کردن در کوئری‌ها را می‌دهد. منظور از کوئری‌ها، همان‌هایی است که به سمت دیتابیس ارسال می‌شوند تا اطلاعاتی را از دیتابیس بیاورند. بطور کلی این آسیب پذیری به مهاجم این اجازه را می‌دهد که داده‌هایی از دیتابیس را ببیند که قرار نبوده ببیند (در حالت عادی اجازه دیدن آن‌ها را نداشته است). در بسیاری از موارد، هکر علاوه بر امکان مشاهده داده‌ها، امکان پاک کردن یا تغییر دادن داده‌ها را نیز پیدا می‌کند. در ویدیو “آموزش ابزار sqlmap” و “آموزش ابزار bbqsql” بطور دقیق به کشف و اکسپلویت یک نمونه از آسیب پذیری‌های تزریق SQL پرداختیم. اگر تمایل دارید بیشتر در مورد این آسیب پذیری بدانید، می‌توانید این دو ویدیو رایگان را مشاهده کنید.

آسیب پذیری Client-side SQL Injection (DOM-based)

آسیب پذیری Client-side SQL Injection زمانی رخ می‌دهد که یک اسکریپت شامل داده‌های تحت کنترل مهاجم، به یک کوئری SQL سمت کاربر بصورت ناامنی وارد می‌شود. مهاجم با استفاده از این آسیب پذیری می‌تواند یک URL بسازد و برای قربانی ارسال کند. قربانی با مشاهده این لینک، یک کوئری SQL مطابق میل مهاجم اجرا می‌کند و اطلاعاتش لو می‌رود.

آسیب پذیری Client-side SQL Injection (Reflected DOM-based)

آسیب پذیری Client-side SQL Injection (Reflected DOM-based) همانند آسیب‌پذیری Client-side SQL Injection (DOM-based) می‌باشد. تنها تفاوت در Reflected بودن آن است. یعنی در این آسیب پذیری هم یک اسکریپت شامل داده‌های تحت کنترل مهاجم، به یک کوئری SQL سمت کاربر بصورت ناامنی وارد می‌شود با این تفاوت که نتیجه بصورت Reflected و در سمت کاربر رخ می‌دهد. یعنی مهاجم برای استفاده از آن یک لینک دستکاری شده آماده می‌کند و با تکنیک‌های مهندسی اجتماعی از کاربر می‌خواهد تا برروی آن کلیک کند.

آسیب پذیری Client-side SQL Injection (Stored DOM-based)

آسیب پذیری Client-side SQL Injection (Stored DOM-based) همانند آسیب‌پذیری Client-side SQL Injection (DOM-based) می‌باشد. تنها تفاوت در Stored بودن آن است. یعنی در این آسیب پذیری هم یک اسکریپت شامل داده‌های تحت کنترل مهاجم، به یک کوئری SQL سمت کاربر بصورت ناامنی وارد می‌شود با این تفاوت که نتیجه بصورت Stored و در سمت سرور رخ می‌دهد. یعنی اسکریپت دلخواه مهاجم در یک صفحه آلوده قرار می‌گیرد و قربانی تنها با ملاقات آن صفحه، به دام می‌افتد.

آسیب پذیری File Path Traversal

آسیب پذیری File Path Traversal که به آن Directory Traversal هم گفته می‌شود، به مهاجم اجازه می‌دهد که در مسیرهای مختلف سرور پیمایش کند و فایل‌های دلخواه را از روی سرور بخواند. مهاجم با سواستفاده از این آسیب پذیری می‌تواند اطلاعات سیستمی، نام کاربری و رمز عبور، اطلاعات مهم و … را مشاهده کند. حتی در برخی موارد، مهاجم می‌تواند فایل‌هایی را تغییر دهد و در نهایت کنترل کامل سرور را در دست بگیرد. در ویدیو “آموزش ابزار dotdotpwn” درمورد این حملات و ابزار dotdotpwn برای اکسپلویت کردن این آسیب پذیری صحبت کردیم.

آسیب پذیری مربوط به XML External Entity Injection یا XXE

آسیب پذیری XML External Entity Injection یا به اختصار، XXE به مهاجم اجازه می‌دهد در پردازش فایل‌های XML برروی سرور مداخله کند. این آسیب پذیری به مهاجم اجازه می‌دهد که با المان‌های بک اند (Back-end) ارتباط برقرار کند و فایل‌هایی که اجازه دسترسی به آن‌ها را نداشته است را پیدا کند. در ویدیو “آموزش حملات XXE” بصورت کامل به بررسی این آسیب پذیری و حملات مربوط به آن پرداختیم.

آسیب پذیری مربوط به LDAP Injection

آسیب پذیری مربوط به LDAP Injection وقتی رخ می‌دهد که داده‌های تحت کنترل کاربر، بصورت ناامنی در یک کوئری LDAP کپی می‌شوند. اگر یک مهاجم بتواند متاکاراکترهای LDAP را درون کوئری تزریق کند، ممکن است بتواند به داده‌های حساسی دسترسی پیدا کند که اجازه دسترسی به آن‌ها را نداشته است.

آسیب پذیری مربوط به XPath Injection

آسیب پذیری مربوط به XPath Injection زمانی رخ می‌دهد که داده‌های کاربر بصورت ناامن درون کوئری‌های XPath قرار می‌گیرند. مهاجم می‌تواند با استفاده از ورودی‌های دست‌ساز خود، ساختار کوئری را بهم بزند. سپس می‌تواند با استفاده از کوئری آسیب پذیر، به اطلاعات حساس دسترسی پیدا کند و در منطق اجرای برنامه مداحله کند.

آسیب پذیری مربوط به XML Injection

آسیب پذیری مربوط به XML Injection یا همان SOAP injection وقتی رخ می‌دهد که داده‌های ورودی کاربر درون یک سند XML سمت سرور یا پیام SOAP قرار می‌گیرد. از این رو، این امکان وجود دارد که با استفاده از متاکاراکترهای XML، ساختار بهم بریزد. با توجه به عملیاتی که XML در آن قرار است بکارگرفته شود، مهاجم می‌تواند با بهم زدن ساختار XML، عملیات غیر مجاز انجام دهد.

آسیب پذیری مربوط به HTTP PUT Method Enabled

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

آسیب پذیری مربوط به Out of Bound Resource Load

آسیب پذیری مربوط به Out of Bound Resource Load زمانی رخ می‌دهد که یک برنامه تحت وب وادار به استفاده از محتوایی می‌شود که در یک محل دلخواه خارجی قرار دارد. سپس برنامه این محتوا را در پاسخ درخواست‌هایی که به سمتش می‌آید قرار می‌دهد. از آنجاییکه این محتوا ممکن است مخرب باشد، این اتفاق می‌تواند منجر به این شود که مهاجم از سرور به عنوان یک پروکسی استفاده کند و در حملات خود از آن سواستفاده کند.

آسیب پذیری File Path Manipulation

آسیب پذیری File Path Manipulation وقتی رخ می‌دهد که داده‌های کاربر درون فایل یا URLیی قرار می‌گیرند که برروی سرور برای دسترسی به منابع از آن استفاده می‌شود که ممکن است درون و یا خارج root باشند. اگر این آسیب پذیری وجود داشته باشد مهاجم می‌تواند مسیر فایل را عوض کند تا به منابع مختلف دسترسی پیدا کند.

آسیب پذیری PHP Code Injection

آسیب پذیری PHP Code Injection زمانی رخ می‌دهد برنامه تحت وب، اطلاعات کاربر را درون یک string قرار می‌دهد که بصورت پویا توسط یک مفسر ارزیابی می‌شود. اگر اطلاتی که کاربر در این قسمت وارد می‌کند، بدرستی چک نشوند، مهاجم می‌تواند با استفاده از ورودی‌های ساختگی روند اجرای کد را مختل کند. این به این معناست که می‌تواند کد مدنظر خود را تزریق کند تا این کد برروی سرور اجرا شود!

آسیب پذیری Server-side JavaScript Code Injection

بطور کلی آسیب پذیری های مربوط به Code Injection که Server-side هستند، زمانی رخ می‌دهند که برنامه تحت وب که شامل داده‌های تحت کنترل کاربر است، داده‌های کاربر را درون یک استرینگ می‌ریزد. همانند PHP Code Injection این آسیب پذیری ها نیز، اگر در این برنامه‌ها ورودی‌های کاربران بدرستی چک نشوند، یک مهاجم می‌تواند از آن سواستفاده کند. تنها تفاوت این آسیب پذیری با مورد قبل این است که در اینجا بحث در رابطه با JavaScript است. یعنی مهاجم کد JavaScript را تزریق می‌کند تا در نهایت مفسر آن دچار اشکال شود.

آسیب پذیری OS Command Injection

آسیب پذیری OS Command Injection که به آن Shell Injection هم گفته می‌شود، به مهاجم این اجازه را می‌دهد که دستورات مربوط به سیستم عاملِ سرور را بصورت دلخواه برروی آن اجرا کند. عموما چنین آسیب‌پذیری منجر به نفوذ کامل مهاجم به اجزای سرور می‌شود و مهاجم کنترل کامل سرور را در دست می‌گیرد. در بسیاری از موارد، مهاجم با داشتن چنین اختیاری، شروع به نفوذ به دیگر تجهیزات درون هاستینگ نیز می‌کند!

آسیب پذیری Python Code Injection

بطور کلی آسیب پذیری های مربوط به Code Injection که Server-side هستند، زمانی رخ می‌دهند که برنامه تحت وب که شامل داده‌های تحت کنترل کاربر است، داده‌های کاربر را درون یک استرینگ می‌ریزد. همانند PHP Code Injection این آسیب پذیری ها نیز، اگر در این برنامه‌ها ورودی‌های کاربران بدرستی چک نشوند، یک مهاجم می‌تواند از آن سواستفاده کند. به اینصورت که کدهای مخرب مهاجم وقتی به مفسر می‌رسند، منجر به عملیات غیرمجاز در سرور می‌شود. در اینجا بحث در رابطه با Python است. یعنی مهاجم کد Python را تزریق می‌کند تا در نهایت مفسر آن دچار اشکال شود.

آسیب پذیری Perl Code Injection

بطور کلی آسیب پذیری های مربوط به Code Injection که Server-side هستند، زمانی رخ می‌دهند که برنامه تحت وب که شامل داده‌های تحت کنترل کاربر است، داده‌های کاربر را درون یک استرینگ می‌ریزد. همانند PHP Code Injection این آسیب پذیری ها نیز، اگر در این برنامه‌ها ورودی‌های کاربران بدرستی چک نشوند، یک مهاجم می‌تواند از آن سواستفاده کند. تنها تفاوت این آسیب پذیری با مورد قبل این است که در اینجا بحث در رابطه با Perl است. یعنی مهاجم کد Perl را تزریق می‌کند تا در نهایت مفسر آن دچار اشکال شود.

آسیب پذیری Ruby Code Injection

بطور کلی آسیب پذیری های مربوط به Code Injection که Server-side هستند، زمانی رخ می‌دهند که برنامه تحت وب که شامل داده‌های تحت کنترل کاربر است، داده‌های کاربر را درون یک استرینگ می‌ریزد. همانند PHP Code Injection این آسیب پذیری ها نیز، اگر در این برنامه‌ها ورودی‌های کاربران بدرستی چک نشوند، یک مهاجم می‌تواند از آن سواستفاده کند. تنها تفاوت این آسیب پذیری با مورد قبل این است که در اینجا بحث در رابطه با Ruby است. یعنی مهاجم کد Ruby را تزریق می‌کند تا در نهایت مفسر آن دچار اشکال شود.

آسیب پذیری Expression Language Injection

بطور کلی آسیب پذیری های مربوط به Code Injection که Server-side هستند، زمانی رخ می‌دهند که برنامه تحت وب که شامل داده‌های تحت کنترل کاربر است، داده‌های کاربر را درون یک استرینگ می‌ریزد. همانند PHP Code Injection این آسیب پذیری ها نیز، اگر در این برنامه‌ها ورودی‌های کاربران بدرستی چک نشوند، یک مهاجم می‌تواند از آن سواستفاده کند.

آسیب پذیری Unidentified Code Injection

بطور کلی آسیب پذیری های مربوط به Code Injection که Server-side هستند، زمانی رخ می‌دهند که برنامه تحت وب که شامل داده‌های تحت کنترل کاربر است، داده‌های کاربر را درون یک استرینگ می‌ریزد. همانند PHP Code Injection این آسیب پذیری ها نیز، اگر در این برنامه‌ها ورودی‌های کاربران بدرستی چک نشوند، یک مهاجم می‌تواند از آن سواستفاده کند.

آسیب پذیری Server-side Template Injection

آسیب پذیری Server-side Template Injection زمانی است که مهاجم می‌تواند با استفاده از Templateهای Native مربوط به سینتکس برنامه، یک پیلود مخرب را درون یک Template تزریق کند. این پیلود در ادامه در سمت سرور اجرا خواهد شد و مهاجم به خواسته خود خواهد رسید.

آسیب پذیری Client-Side Template Injection

آسیب پذیری Client-Side Template Injection زمانی رخ می‌دهد که یک برنامه تحت وب از یک تمپلیت سمت کاربر بصورت داینامیک ورودی کاربر را درون صفحات وب قرار می‌دهد. وقتی آن صفحات وب رندر می‌شوند، فریم ورک مربوط به تمپلیت، بدنبال تمپلیت‌های درون صفحه می‌گردد و هر تمپلیتی که ببینید، اجرا می‌کند. مهاجم می‌تواند با سواستفاده از این قابلیت، یک تمپلیت مخرب را وارد صفحه کند. این تمپلیت مخرب در ادامه می‌تواند منجر به یک حمله XSS شود.

آسیب پذیری Server-Side Include Injection یا SSI Injection

آسیب پذیری Server-Side Include Injection یا SSI Injection زمانی رخ می‌دهد که یک برنامه تحت وب داده‌های کاربر را درون response ها قرار می‌دهد بطوریکه سپس برای Includeهای سمت سرور پارس (تجزیه – Parse) می‌شود. اگر ورودی کاربر بدرستی ارزیابی نشود، مهاجم می‌تواند با تغییر دادن یا تزریق کردن directiveها، عملیات مخرب انجام دهد. مهاجم با اکسپلویت کردن این آسیب پذیری، می‌تواند محتوای مخرب مثل تکه کد جاوا اسکریپت، را درون Responseهای سرور قرار دهد که نتیجه آن شبیه به XSS خواهد بود.

آسیب پذیری Cross-site Scripting (Stored) یا XSS Stored

آسیب پذیری Stored Cross-site Scripting که به آن Second-order XSS یا Persistent XSS هم گفته می‌شود، زمانی رخ می‌دهد که یک برنامه تحت وب، داده‌های خود را از یک منبع نامعتبر دریافت می‌کند و آن را در HTTP Responseهای خود لحاظ می‌کند. برای مثال در پخش نظرات یک سایت، مهاجم لابلای نظر خود کد مخرب جاوا اسکریپتی را تزریق می‌کند. اگر مکانیزم مناسبی برای ارزیابی نظرات کاربران وجود نداشته باشد، نظر کاربر در این صفحه تزریق می‌شود. از این به بعد هر کس این صفحه را ملاقات کند، این اسکریپت بصورت خودکار اجرا می‌شود و مهاجم به خواسته خود می‌رسد. در ویدیو “آموزش Stored XSS” بطور کامل درمورد این حملات صحبت کردیم و نحوه کشف و اکسپلویت یک نمونه از این آسیب پذیری‌ها را بررسی کردیم.

آسیب پذیری Cross-site Scripting (Reflected) یا XSS Reflected

آسیب پذیری Reflected Cross-site Scripting زمانی رخ می‌دهد که یک برنامه تحت وب، داده‌های خود را از یک منبع نامعتبر دریافت می‌کند و آن را در HTTP Responseهای خود لحاظ می‌کند. برای مثال در پخش نظرات یک سایت، مهاجم لابلای نظر خود کد مخرب جاوا اسکریپتی را تزریق می‌کند. اگر مکانیزم مناسبی برای ارزیابی نظرات کاربران وجود نداشته باشد، نظر کاربر در این صفحه تزریق می‌شود. از این به بعد هر کس این صفحه را ملاقات کند، این اسکریپت بصورت خودکار اجرا می‌شود و مهاجم به خواسته خود می‌رسد. در ویدیو “آموزش Reflected XSS” بطور کامل درمورد این حملات صحبت کردیم و نحوه کشف و اکسپلویت یک نمونه از این آسیب پذیری‌ها را بررسی کردیم.

آسیب پذیری Cross-site Scripting (DOM-based) یا XSS DOM-based

آسیب پذیری Cross-site Scripting (DOM-based) یا XSS DOM-based معمولا وقتی رخ می‌دهد که جاوااسکریپت از یک منبع تحت کنترل مهاجم، داده می‌گیرد و آن را به یک مقصد مقصد می‌رساند که این مقصد قابلیت اجرای داینامیک کدها را دارد. در اصل برای انجام یک حمله مبتنی بر XSS Dom-based می‌بایست داده‌ها درون سورسی قرار داده شوند تا برنامه تحت وب آن را بخواند و منجر به اجرای کد جاوااسکریپت دلخواه شود.

آسیب پذیری مربوط به HTTP Request Smuggling

تکنیک HTTP Request Smuggling، تکنیکی است که در آن مهاجم در ترتیب پردازش درخواست‌های HTTP یک وب سایت مداخله می‌کند. آسیب پذیری های Request Smuggling عموما بسیار خطرناک هستند. این آسیب پذیری ها به مهاجم امکان دور زدن مکانیزم‌های امنیتی، دسترسی غیرمجاز به داده‌ها و اطلاعات کاربران را می‌دهد.

برنامه های تحت وب امروزی، معمولا از یک زنجیره از سرورهای HTTP استفاده می‌کنند. یعنی وقتی درخواست HTTP از سمت کاربر به وب سایت ارسال می‌شود، مستقیم به سرور اصلی نمی‌رود. یعنی درخواست کاربر ابتدا به یک سرور front-end مثل یک Reverse Proxy یا یک Load Balancer می‌رسد و سپس اینها درخواست کاربر را به یک یا چند سرور back-end ارسال می‌کنند تا به درخواست رسیدگی شود. در حالیکه این استفاده از این معماری بسیار گسترده شده است، مخاطراتی را نیز به همراه دارد. در این معماری مهاجم می‌تواند با تغییر دادن ساختار درخواست ارسالی، اختلال ایجاد کند. یعنی مهاجم درخواست خود را طوری طراحی می‌کند که سرور front-end هنگام تفسیر و ارسال آن به سمت سرور back-end دچار اشتباه بشود. در نتیجه برای مثال، بخشی از درخواستی که به سرور front-end رسیده است، به عنوان آغاز درخواست بعدی شناخته می‌شود!

آسیب پذیری مربوط به Web Cache Poisoning

تکنیک Web Cache Poisoning یک تکنیک پیشرفته است که در آن مهاجم با استفاده از وب سرور و cach، در پاسخ به کاربران HTTP Responseهای آلوده را ارسال می‌کند. بطور کلی Web Cache Poisoning شامل ۲ فاز کلی است. اول اینکه مهاجم باید بداند که چطور می‌توان یک Response آلوده را در پاسخ به درخواست‌های کاربران ارسال کرد. سپس مهاجم باید بتواند این Response را Cache کند.

آسیب پذیری HTTP Response Header Injection

آسیب پذیری HTTP Response Header Injection زمانی رخ می‌دهد که داده ورودی کاربر بصورت نا امن درون یک Header در Response مورد استفاده قرار می‌گیرد. اگر مهاجم بتواند یک کاراکتر New Line درون ورودی خود وارد کند، آن گاه می‌تواند یک سری Header جدید نیز اضافه کند! یا حتی با قرار دادن کاراکترهای New Line می‌تواند بخش Headerها را به اتمام برساند و وارد بخش Body پیامِ Response شود. همه این موارد باعث می‌شود هکر بتواند محتوای دلخواه را درون پیام Response وارد کند.

انواع مختلفی از حملات می‌تواند بوسیله HTTP Response Header Injection انجام شود. حدودا تمام حملاتی که می‌تواند بوسیله XSS انجام شود، از این طریق نیز قابل انجام هستند. چرا که هکر می‌تواند پیام Request را به صورت دلخواهانه بگونه‌ای بسازد که در Response کد JavaScript مدنظرش ظاهر شود. علاوه بر این، در برخی موارد ممکن است هکر با استفاده از HTTP Response Header Injection پراکسی سروری که کاربران از طریق آن به وب اپلیکیشن دسترسی پیدا می‌کنند را آلوده کند. به اینصورت که هکر با فرستادن Requestهای ساختگی و دلخواه، باعث بخش بخش شدن Responseها می‌شود، و می‌تواند از آن‌ها استفاده مخرب بکند.

حملات مبتنی بر DOM-Based WebSocket-URL Poisoning

WebSocket-URL Poisoning زمانی رخ می‌دهد که یک اسکریپت داده‌های قابل کنترل را به عنوان URL هدف یک اتصال WebSocket بکار می‌گیرد. هکر می‌تواند از این آسیب پذیری سواستفاده کند. به اینصورت که یک URL را بطوری بسازد که اگر توسط کاربر دیگری باز شود، باعث باز شدن یک ارتباط WebSocket از مرورگر کاربر به URL تحت کنترل هکر شود.

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

آسیب پذیری DOM-based Local File-path

آسیب پذیری DOM-based Local File-path وقتی رخ می‌دهد که یک اسکریپت تحت کنترل هکر، به یک API فایل هندلینگ منتقل می‌شود. یعنی یک API برای هندل کردن فایل‌ها داریم و هکر اسکریپت خود را به عنوان پارامتر filename ارسال می‌کند. مهاجم احتمال دارد بتواند با سواستفاده از این آسیب پذیری، URLیی بسازد که اگر توسط دیگر کاربران ملاقات شود باعث شود مرورگر او یک فایل دلخواه از روی سیستمش باز کند.

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

آسیب پذیری DOM-based JSON Injection

آسیب پذیری DOM-based JSON Injection وقتی رخ می‌دهد که یک اسکریپت شامل داده‌های تحت کنترل هکر هست و این داده‌ها درون یک String قرار داده می‌شود. بعدا که این String به عنوان یک ساختمان داده JSON تجزیه (Parse) می‌شود و سپس توسط اپلیکیشن پردازش می‌شود. مهاجم ممکن است بتواند با سواستفاده از این رفتار، یک URL درست کند که اگر توسط دیگر کاربران ملاقات شود، باعث پردازش داده JSON دلخواه شود.

آسیب پذیری مربوط به Flash Cross-domain Policy

Flash Cross-domain Policy کنترل می‌کند که ببیند آیا کامپوننت‌های فلش کاربر که برروی دامنه دیگری اجرا می‌شود امکان تعامل ۲ طرفه دارد با دامنه‌ای که پالیسی‌ها را منتشر می‌کند، را دارد یا خیر.اگر دامنه دیگری بوسیله پالیسی اجازه داده شود سپس آن دامنه می‌تواند باعث حمله کاربران به اپلیکیشن موردنظر شود. اگر یک کاربر به اپلیکیشن لاگین کند و یک دامنه مجاز (دامنه ای که توسط پالیسی مجاز است) را ملاقات کند، آنگاه هر محتوای مخربی که برروی آن دامنه در حال اجرا است، می‌تواند منجر به دسترسی کامل (Full Access) به اپلیکیشن شود.

آسیب پذیری مربوط به Silverlight Cross-domain Policy

Silverlight Cross-domain Policy کنترل می‌کند که ببیند آیا کامپوننت‌های Silverlight کاربر که برروی دامنه دیگری اجرا می‌شود امکان تعامل ۲ طرفه دارد با دامنه‌ای که پالیسی‌ها را منتشر می‌کند، را دارد یا خیر.اگر دامنه دیگری بوسیله پالیسی اجازه داده شود سپس آن دامنه می‌تواند باعث حمله کاربران به اپلیکیشن موردنظر شود. اگر یک کاربر به اپلیکیشن لاگین کند و یک دامنه مجاز (دامنه ای که توسط پالیسی مجاز است) را ملاقات کند، آنگاه هر محتوای مخربی که برروی آن دامنه در حال اجرا است، می‌تواند منجر به دسترسی کامل (Full Access) به اپلیکیشن شود.

آسیب پذیری مربوط به Cross-origin Resource Sharing (CORS)

مکانیزم Cross-origin Resource Sharing درون مرورگرها برای کنترل دسترسی به منابع خارجی است که در به یک دامنه داده شده است. این مکانیزم، SOP یا همان Same-origin Policy را منعطف‌تر می‌کند. اما این مکانیزم می‌تواند احتمال حملات Cross-domain را نیز بوجود می‌آورد. البته در صورتی این احتمال بوجود می‌آید که پالیسی CORS یک وب سایت، بدرستی پیکربندی و پیاده‌سازی نشده باشد.

از این قابلیت آسیب پذیری های مختلفی ممکن است بوجود بیاید. از مهم ترین این آسیب پذیری ها می‌توان به موارد زیر اشاره کرد:

  • Errors parsing Origin headers
  • Whitelisted null origin value
  • Exploiting XSS via CORS trust relationships
  • Breaking TLS with poorly configured CORS

درباره ما

ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
دوره‌های آکادمی ترجنس | courses.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence

ارسال یک پاسخ