20 درصد تخفیف ویژه دوره های جامع آکادمی تکوان24!

فقط 0 روز و 0 ساعت و 0 دقیقه و 0 ثانیه باقی مانده!

تست نفوذ پروتکل HTTP

زمان مطالعه: 4 دقیقه
تست نفوذ پروتکل HTTP

آنچه در این مقاله می‌خوانید

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

نحوه تست نفوذ  پروتکل HTTP

پروتکل HTTP از تعدادی متد برای ایفای Action بر روی وب سرور استفاده می‌کند. در حالی متدهای GET و POST جز معمول‌ترین متدها برای دسترسی به اطلاعات یک وب سرور و تست نفوذ وب هستند، پروتکل HTTP به شما اجازه می‌دهد که در صورت Misconfiguration وب سرور از متدهای دیگر نیز برای اهداف مخرب استفاده کنید. پروتکل HTTP شامل متدهای زیر است:

 

  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • CONNECT
  • OPTIONS
  • TRACE

انواع تست نفوذ وب پروتکل HTTP

  • شناسایی متدهای پروتکل HTTP
  • تست برای Access Control Bypass
  • تست آسیب‌پذیری XST
  • تست HTTP Method Overriding

شناسایی متدهای پروتکل HTTP

در این مرحله تست نفوذ وب، تستر بایستی متدهایی که توسط وب سرور ساپورت می‌شود را شناسایی کند. درحالی‌که متد Options روشی برای شناسایی متدهای سمت وب سرور است بایستی یک تستر با ایجاد درخواست‌های مختلف و بررسی Response از سمت سرور متدهای سمت سرور را شناسایی کند. این روش در تست نفوذ وب معمولاً به‌صورت Manual انجام می‌شود. شما می‌توانید با استفاده از ابزار NMAP و اسکریپت http-methods تست Manual را برای شناسایی متدهای وب سرور و تست نفوذ وب انجام دهید.تست نفوذ وب پروتکل HTTP

تست متد PUT

برای این تست مراحل زیر را انجام دهید:

  • Request به سمت Target را توسط Web Proxy خود Capture کنید.
  • در این مرحله Request Method را به PUT تغییر دهید و یک فایل html را به درخواست خود اضافه کنید. سپس درخواست را به سمت وب سرور ارسال کنید.
  • درصورتی‌که در Response از سمت وب سرور HTTP Status Code های ۲XX که به معنی Success و یا ۳XX که معنی Redirection هست گرفتید به این معنی که متد GET بر روی وب سرور آسیب‌پذیر است.
تست نفوذ وب برای Access Control Bypass

در این تست نفوذ وب بایستی صفحه‌ای از سایت را پیدا کنید که در صورتی به آن GET Request بدهید سرور شمارا HTTP Status Code 300 به یک Login Page ارسال کند. در این حالت سعی کنید با تغییر متد GET به متدهای POST یا HEAD و یا PUT درخواست خود را به سمت وب سرور ارسال کنید. درصورتی‌که سرور با یک HTTP/1.1 200 OK پاسخ دهد ممکن Authentication یا Authorization سایت Bypass شود. تست نفوذ وب با Access Control Bypass

درصورتی‌که سیستم آسیب‌پذیر باشد شما می‌توانید از CSRF Attack برای Exploit کردن سایت استفاده کنید. می‌توانید از درخواست‌های زیر برای این منظور استفاده کنید:

CSRF Attack برای انجام تست نفوذ به وببا استفاده از دستورات بالا می‌توان یک User ایجاد کرد و برای آن‌یک پسورد SET کرد. سپس در قدم بعدی User مربوطه را به گروه Admin اختصاص داد. همه این موارد به خاطر این است که درخواست‌های شما با متدهای مختلف از سمت وب سرور Submit می‌شود.

تست Cross-Site Tracing(XST)

هدف از متد Trace برای Test و Debugging بر روی ساختار وب سرور است. این متد جز متدهای خطرناک است. درصورتی‌که یک هکر از این متد استفاده کند امکان Steal کردن User Credential ها وجود دارد .

تست Cross-Site Tracing

برای تست نفوذ وب شما می‌توانید یک درخواست با متد Trace به سمت سرور ارسال کنید:

تست نفوذ وب با Cross-Site Tracing

همان‌طوری که در تصویر بالا مشاهده می‌کنید سرور با HTTP Status Code 200 پاسخ داده و شما می‌توانید در این مرحله سرور را با استفاده از کد زیر Exploit کنید.

CST2

تست HTTP Method Override

 بعضی از فریمورک‌‌های وب روشی را ارائه می‌دهند که می‌تواند Actual HTTP Method را در یک Request با یک Custom Header در Request جایگزین یا Override می‌کند. این به دلیل فایروال و یا پروکسی‌های هست که در مسیر درخواست می‌توانند درخواست‌های PUT یا Delete را Block کنند .

به‌عبارت‌دیگر این فریمورک‌‌های وب از این متدها استفاده می‌کنند ولی با استفاده از یک Custom Header که توسط آن‌ها ساپورت می‌شود. در قسمت زیر می‌توانید تعدادی از این Custom Header ها را مشاهده کنید.

 HTTP Override در تست نفوذ وب

برای تست بایستی یک درخواستی با متد Delete به سمت سرور ارسال کنید. درصورتی‌که در پاسخ کد ۴۰۵ را گرفتید به معنی این است که استفاده از این متد مجاز نیست. در این مرحله می‌توانید با اضافه کردن یک Custom Header دوباره از متد Delete استفاده کنید و درخواستی را به سمت وب سرور ارسال کنید.

درصورتی‌که سرور پاسخ درخواست را با کد ۲۰۰ دهد به معنی آن است که Method Overriding ساپورت می‌شود. همان‌طوری که در تصویر زیر مشاهده می‌کنید متد Delete توسط سرور مجاز نیست.

مجاز نبودن متد در تست نفوذ وبهمان‌طوری که در تصویر زیر مشاهده می‌کنید بعد از اضافه کردن X-HTTP-Method سرور پاسخی با کد ۲۰۰ به شما می‌دهد.

X-HTTP منابع: https://www.sans.org/cyber-security-courses/web-app-penetration-testing-ethical-hacking https://www.imperva.com/learn/application-security/penetration-testing/

امیدوارم از این مقاله آموزشی لذت برده باشید. درصورتی‌که علاقه‌مند به دوره‌های تست نفوذ وب هستید می‌توانید در دوره تست نفوذ وب آکادمی تکوان ۲۴ شرکت کنید.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

20 درصد تخفیف ویژه دوره های جامع آکادمی تکوان24!

فقط 0 روز و 0 ساعت و 0 دقیقه و 0 ثانیه باقی مانده!