خانه / امنیت / شروع کار با Burp Suite -بخش سوم – به کارگیری Burp Proxy

شروع کار با Burp Suite -بخش سوم – به کارگیری Burp Proxy

Burp Proxy یکی از قسمت های مهم Burp Suite می باشد. این ابزار این امکان را به شما می دهد که ترافیک وب بین مرورگر کلاینت و سایت مورد نظر را متوقف کرده و بررسی نمایید.

در قسمت بالای Burp Proxy سه تب به شرح زیر وجود دارد:

  • intercept : در این پنجره در خواست ها و پاسخ های HTTP  که در حال  انتقال است را می توان متوقف و ویرایش کرد.
  • options : تنظیمات پراکسی را از این قسمت می توان انجام داد.
  • history : همه ترافیک های متوقف شده را می توان سریعا از این پنجره تحلیل کرد.

مرحله 1 – متوقف ساختن درخواست های وب

بعد از انجام تنظیمات برنامه و مرورگر می خواهیم مراحل متوقف ساختن یک درخواست HTTP را شرح دهیم :

  • در تب intercept با بررسی دکمه intercept  مطمئن شوید که پراکسی Burp همه درخواست های عبوری را متوقف می کند.این دکمه باید به صورت intercept is on باشد.
  • در مرورگر آدرس http://www.acdev.ir/ را وارد کرده و دکمه Enter را بفشارید.
    به Burp Proxy برگردید شما باید درخواست ایجاد شده به وسیله مرور گر را ببینید.در این مرحله درخواست به وسیله Burp Proxy موقتا متوقف شده است و منتظر است تا کاربر آن را یا ارسال کند و یا متوقف کند.
    به عنوان نمونه دکمه forward را زده و به مرورگر بازگردید.شما باید صفحه اصلی سایت آکادمی برنامه نویسان را ببینید.
  • دوباره آدرس http://www.acdev.ir/ را وارد کرده و دکمه Enter  را بفشارید.
  • این بار  دکمه drop  را بفشارید.
  • به مرورگر برگردید ، صفحه پیام هشدار Burp proxy error: message was dropped by user نمایش داده می شود .به دلیل اینکه ما درخواست را متوقف  کردیم ،  Burp Proxy آن را به سرور ارسال نکرد در نتیجه مرورگر یک صفحه HTML  موقت که شامل یک هشدار تولید شده از طرف برنامه بود به جای صفحه HTML  اصلی دریافت کرد.
  • یک بار دیگر  آدرس http://www.acdev.ir/ را وارد کرده و دکمه Enter  را بفشارید.
    برروی دکمه action کلیک کنید. کلیک برروی آن یک منو را نمایش می دهد که از طریق آن می توانید درخواست وب را به سایر ابزار های برنامه ارجاع دهید.

این گونه تصور کنید که شما مجموعه ای از ابزارهای یکپارچه دارید که این امکان را به شما می دهد که درخواست های وب را به راحتی دستکاری و تحلیل کنید. به عنوان نمونه اگر بخواهیم یک درخواست را رمز گشایی کنیم به راحتی دکمه send to decoder را می زنیم.

BurpProxy

با تغییر وضعیت  دکمه  intercept می توانیم تصمیم بگیریم که همه درخواست ها بدون اینکه منتظر فرمان کاربر باشد به صورت خودکار ارسال شود .  این دکمه دارای دو وضعیت  intercept is on و intercept is off است. با این وجود پراکسی همه درخواست های عبوری را ضبط خواهد کرد.

همچنین Burp Proxy این امکان را را به شما می دهد درخواست ها را بر اساس ویژگی های خاص متوقف کنید. که این تنظیمات در بخش  intercept server response در تب options  قرار دارد.

مرحله 2 – بررسی درخواست های وب

بعد از اینکه یک درخواست متوقف گردید با استفاده از چهار تب موجود می توان محتوا ، عنوان و پارامتر های آن را تجزیه و تحلیل کرد:

  • raw : در این نما شما می توانید درخواست وب را در یک قالب اولیه و کد های  ساده در یک ویرایشگر متن ببینید. اطلاعاتی  که از این قسمت بدست می آورید  انعطاف پذیری زیادی برای تغییر محتوا در آینده به شما می دهد .
  • params : تمرکز این قسمت برروی پارامترهای به کار رفته (GET،POST و کوکی ها) کاربر است. این قسمت زمانی مفید است که درخواست ها پیچیده بوده و شما نیاز به تمرکز برروی نقاط آسیب پذیر دارید.در این قسمت همچنین عملیات رمز گشایی URL  به طور خودکار انجام می گیرد. به علاوه Burp Proxy سعی می کند فرمت هایی مانند JSON را نیز تجزیه کند.
  •  headers : در این قسمت هدر صفحه HTTP و مقادیر آن نمایش داده می شود.
  • hex : در این قسمت محتوا به صورت hexadecimal نمایش داده می شود.

با استفاده از تب history شما می توانید همه درخواست هایی که قبلا از پراکسی عبور کرده اند را تجزیه و تحلیل کنید :

  1. بروی تب history کلیک کنید ، در بالای تب Burp پراکسی همه درخواست ها را به صورت جدول نمایش می دهد در پایین آن بسته به انتخاب شما محتوای در خواست و پاسخ نمایش داده می شود. در صورتیکه قبلا یک درخواست را تغییر داده باشید نسخه ویرایش شده را نیز نمایش می دهد.
    BurpProxyHistory

    نمایش درخواست ها و پاسخ های متوقف شده HTTP به وسیله Burp Proxy
  2. با دابل کلیک کردن برروی هر درخواست پنجره جدیدی باز می شود که در آن امکان بازدید از همه درخواست ها ضبط شده قبلی با استفاده از دکمه های previous  و  next  وجود دارد.
  3. به تب history برگردید Burp Proxy جزئیات شامل متد درخواست ، URLو طول آن را نمایش می دهد همچنین هر درخواست به وسیله یک عدد مشخص  شده است .
  4. برروی عدد مربوط به  در خواست کلیک کنید . Burp Proxy این امکان را می دهد یک رنگ برای هر درخواست انتخاب کنید این زمانی مفید خواهد بودکه می خواهید درخواست ها و پاسخ های مهم را های لایت کنید.
  5.  در قمست بالای history برروی filter کلیک کنید. در این قسمت شما می توانید درخواست ها و پاسخ ها را براساس پارامتر یا  کدی خاص فیلتر کنید.

مرحله 3- دستکاری درخواست های وب

به عنوان بخشی از یک ارزیابی امنیتی ، شما نیاز دارید که درخواست های HTTP را ویرایش کرده و پاسخ های برنامه وب را تحلیل کنید. به عنوان مثال برای شناسایی آسیب پذیری  SQL injection نکته مهم این است که پارامتر های ویژه ( مثالا تک کوتیشن) را در ورودی های کاربر شامل هدر صفحه ، کوکی ها و متد های    GET/POST به کار ببرید.

 دستکاری یک درخواست وب به راحتی امکان پذیر است :

  1. یک درخواست که شامل حداقل یک پارامتر HTTP را متوقف کنید. به عنوان مثال  این آدرس را در مروگر وارد کنید :  http://acdev.ir/Course/AspCsharp/18
  2. به Burp Proxy | Intercept بروید . در این لحظه شما باید درخواست HTTP مربوط به آن را زیر را ببینید.
  3. در پنجره raw به راحتی می توانید قسمت های مختلف درخواست در حال عبور را ویرایش کنید . به عنوان مثال شما می توانید مقدار پارامتر GET  را  از عدد 18 به 9 تغییر دهید . بعد از ویرایش درخواست به شکل زیر خواهد بود :
     
  4. برروی forward  کلیک کرده و به مرور گر برگردید. نتیجه دوره آموزشی درخواستی از سایت تغییر کرده است .

اگر چه ما می توانیم با استفاده از پنجره raw  همه درخواست های قبلی را را ویرایش کنیم اما با به کار گیری پنجره های دیگر نیز می توانیم این کار را انجام دهیم به عنوان مثال در پنجره params این امکان وجود دارد که پارامتر جدیدی اضافه کنید :

  1. برروی دکمه Add در سمت راست پنجره params کلیک کنید.
  2. نوع پارامتر را اتخاب کنید ( URL، body یا cookie) . به این نکته توجه کنید کهURL  در حالت GET  و body  درحالت Post  به کار می رود.
  3. نام و مقدار پارامتر جدید را وارد کنید.

ویژگی های پیشرفته

بعد از انجام تمرینات برروی ویژگی های پایه ای   پراکسی Burp  تقریبا آمادگی لازم برای آشنایی با  تنظیمات پیشرفته آن را بدست آورده اید.

مطابقت و جایگزینی

 موقعیتی را تصور کنید که شما یک برنامه طرا حی شده برای موبایل را با استفاده از یک مرورگر استاندارد از روی کامپیوترتان امتحان می کنید . در بیشتر موارد وب سرور user-agent ایجاد شده به وسیله مرور گر را امتحان می کند برای شناسایی پلت فرم خاصی و پاسخ می دهد با منابع سفارشی شده که با تلفن های همراه و تبلت ها مطابقت دارد. دراین شرایط شما می توانید از match and replace برای تغییرات لازم استفاده کنید. تظیمات  سفارشی کردن Burp Proxy برای دستکاری  user-agent در هدر HTTP  :

  1. در تب options پراکسی Burp ، به پایین اسکرول کرده تا به قسمت match and replace برسید.
  2. برروی دکمه Add در سمت چپ پنجره کلیک کنید. در قسمت type  مقدار request header انتخاب کنید چون ما می خواهیم یک شرط منطبق بر یک درخواست HTTP ایجاد کنیم.
  3. در فیلد Match مقدار  ^User-Agent.*$ وارد کنید. این فیلد نشان دهنده این است که چه مقداری باید دردرخواستHTTP مطابقت داده شود. شما دراین قسمت از یک رشته ساده گرفته تا عبارات منظم پیچیده را می توانید وارد کنید.
    درصورتیکه با عبارات منظم آشنا نیستید به لینک http://www.regular-expressions.info/quickstart.html مراجعه کنید.
  4. در فیلد Replace  مقدار Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/4h20+ (KHTML, like Gecko) Version/3.0 Mobile/1C25 Safari/419.3 یا هر مقدار ی را که می خواهید جعل کنید وارد کنید.
  5.  در صورتیکه از عبارت های منظم استفاده می کنید تیک Regex match را هم بزنید .برروی دکمه Ok کلیک کرده و ببنید مقدار جدید به لیست اضافه شده
    است.
    MatchReplaceRule
  6. یک درخواست را متوقف کرده و بررسی کنید که تغییرات به درستی اعمال شده است.
    MatchReplaceResualt
    تغییرات خودکار ایجاد شده در هدر HTTP  به وسیله Burp Proxy
 ویرایش HTML

یکی دیگر از ویژگی های جالب پراکسی Burp  تغییر خودکار HTML است که می توان آنرا از  قسمت Burp Proxy | options  فعال و پیکر بندی کرد.با استفاده از این قابلیت شما می توانید به طور خودکار کدهای جاوا اسکریپت را حذف کنید یا قالب تمامی پاسخ های دریافت شده HTML را تغییر دهید.

بگذارید در عمل بررسی کنیم چگونه می توان این ویژگی را فعال کنیم.

  1. در Burp Proxy ، به قسمت Options  وسپس Response Modification  بروید.
  2. چندین گزینه در این قسمت وجود دارد که هر کدام از آنها عملیات خاصی را انجام می دهند : گزینه unhide hidden form fields فیلد های مخفی قالب Html  را نمایش می دهد. گزینه enable didabled form field تمامی ورودی ها به قالب های حاضر در صفحه را ثبت می کند، گزینه remove input field lenght limits اجازه می هد رشته هایی با اندازه بزرگتر از حد استاندارد را به درون فیلد متنی صفحه Html واردکنید،گزینه remove javascript from validation  موجب می شود Burp Proxy تمامی کنترل کننده های جاوااسکریپت درون قالب های HTML را حذف کند ، گزینه remove all javascript  به صورت کامل تمامی اسکریپت های جاوا را حذف می کند و remove oject tags  شی های نهفته درون مستندات Html را حذف خواهد کرد.
  3. گزینه مورد نظرتان را انتخاب کنید تا به صورت خودکار برنامه Burp آن عملیات را انجام بدهد.

BurpProxyHTMLEdit

استفاده کردن از این ویژگی شما را قادر می سازد متوجه شوید که آیا برنامه کاربردی تحت وب هدف شما اعتبار سنجی سمت سرور استفاده می کند یا خیر. به عنوان مثال ، برخی از برنامه های کاربردی غیر ایمن از طریق توابع JavaScript  تنها فقط از اعتبار سنجی سمت کلاینت استفاده می کنند، ذر این شرایط شما می توانید به راحتی با ویژگی اصلاح کننده خودکار درخواست ها و انتخب کردن گزینه remove JavaScript from validation اعتبار سنجی را به صورت مستقیم از روی مرور گر خود انجام دهید.

مدیر یت آکادمی برنامه نویسان

درباره ی محمد آذرنیوا

مدیر یت آکادمی برنامه نویسان

همچنین ببینید

شروع کار با Burp Suite -بخش چهارم –8 ویژگی که مهم که باید بدانید

زمانیکه شروع به استفاده از این برنامه می کنید متوجه خواهید شد که این برنامه ...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *