آشنایی با متدولوژی Burp Suite – بخش دهم

در این بخش از مجموعه آشنایی با متدولوژی Burp Suite به بخش دهم از این متدولوژی به بررسی آسیب‌پذیری Session Token Generation می پردازیم.

در صورتی که فرآیند مدیریت نشست یا Session Management به صورت نا امن ایجاد شده باشد، ممکن نفوذگر را قادر سازد تا مقدار token مربوط به نشست را شناسایی نموده و قادر به حدس token سایر کاربران باشد.

یک token بازیابی رمز عبور که به آدرس ایمیل ثبت شده کاربر ارسال می شود، مثالی است که نشان می دهد امنیت یک برنامه به غیرقابل پیش بینی بودن token هایی که تولید می کند بستگی دارد.

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

در این مثال از صفحه Attacking session management از ابزار MDSec Training Labs استفاده می نماییم.

Using Burp Decoder to Test Session Tokens

ابتدا، اطمینان حاصل کنید که Burp به درستی با مرورگر شما پیکربندی شده‌است.

در تب Burp Proxy، اطمینان حاصل کنید که در بخش Proxy و تب Intercept، عبارت Intercept is off نمایش داده شده باشد. سپس صفحه ورود برنامه مورد نظر را در مرورگر خود باز کنید.

ابتدا به صفحه ای بروید که قصد تست آن را دارید (auth/331) و اطمینان حاصل کنید که هر گونه جزئیات مورد نیاز برای ایجاد یک پاسخ مناسب که حاوی یک شناسه جلسه است، وارد شده است.

به “Burp” برگردید.

در بخش Proxy و تب Intercept، اطمینان حاصل نمایید که Intercept is on تنظیم شده باشد.

به منظور ارسال درخواست، در این مثال از دکمه Login استفاده نمایید. درخواست ارسال شده با استفاده از Burp Suite قابل مشاهده می باشد.

در ادامه بر روی دکمه Forward کلیک نموده تا پاسخ HTTP که شامل toke نشست می باشد را مشاهده نمایید.

مقدار ” SessionId_331″ که در کوکی ذخیره شده است برای ردیابی نشست مورد استفاده قرار می گیرد.

مقدار token را انتخاب نموده و با راست کلیک بر روی صفحه و انتخاب Send to Decoder آن را به بخش Decoder منتقل نمایید.

به بخش Decoder بروید. token ارسال شده دراین بخش قابل مشاهده می باشد.
این token ممکن است در ابتدا طولانی و تصادفی به نظر برسد. با این حال، با بررسی دقیق تر، می توانید ببینید که فقط شامل کاراکترهای هگزا دسیمال است.

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

نتیجه Decoding در باکس دوم قابل مشاهده خواهد بود.
در این مثال می‌توانیم ببینیم که چگونه توکن با استفاده از تغییر نام کاربری، UID و Timestamp کاربر ایجاد شده است.

Using Burp Sequencer to Test Session Tokens

ابتدا، اطمینان حاصل کنید که Burp به درستی با مرورگر شما پیکربندی شده‌است.

در تب Burp Proxy، اطمینان حاصل کنید که در بخش Proxy و تب Intercept، عبارت Intercept is off نمایش داده شده باشد. سپس صفحه ورود برنامه مورد نظر را در مرورگر خود باز کنید.

به صفحه ای بروید که قصد تست آن را دارید (auth/361) و اطمینان حاصل کنید که هر گونه جزئیات مورد نیاز برای ایجاد یک پاسخ مناسب که حاوی یک شناسه جلسه است، وارد شده است.

به “Burp” برگردید.

در بخش Proxy و تب Intercept، اطمینان حاصل نمایید که Intercept is on تنظیم شده باشد.

به منظور ارسال درخواست، در این مثال از دکمه Login استفاده نمایید. درخواست ارسال شده با استفاده از Burp Suite قابل مشاهده می باشد.

در ادامه بر روی دکمه Forward کلیک نموده تا پاسخ HTTP که شامل toke نشست می باشد را مشاهده نمایید.

مقدار ” SessionId_361″ که در کوکی ذخیره شده است برای ردیابی نشست مورد استفاده قرار می گیرد.

با راست کلیک بر روی صفحه و انتخاب Send to Sequencer آن را به بخش Sequencer منتقل نمایید.

اطمینان حاصل کنید که درخواست مناسب را از قسمت “Select Live Capture Request” انتخاب نموده اید و سپس بر روی دکمه “Start live capture”کلیک کنید.

در ادامه پنجره ای با نام “Burp Sequencer [live capture]” برای شما باز خواهد شد.

Burp Sequencer بارها درخواست را صادر می کند و token مربوطه را از پاسخ های برنامه استخراج می کند.

در این پنجره وضعیت موارد Capture شده و همچنین token های بدست آمده نمایش داده می شود.

همچنین شما می‌توانید در مورد نحوه عملکرد تست تصادفی، تجزیه و تحلیل نتایج و گزینه‌های تجزیه و تحلیل مختلف در مستندات کامل برای Burp Sequencer اطلاعات بیشتری کسب کنید.

Using Burp Intruder to Test Session Tokens

ابتدا، اطمینان حاصل کنید که Burp به درستی با مرورگر شما پیکربندی شده‌است.

در تب Burp Proxy، اطمینان حاصل کنید که در بخش Proxy و تب Intercept، عبارت Intercept is off نمایش داده شده باشد. سپس صفحه ورود برنامه مورد نظر را در مرورگر خود باز کنید.

به صفحه ای بروید که قصد تست آن را دارید (auth/363) و اطمینان حاصل کنید که هر گونه جزئیات مورد نیاز برای ایجاد یک پاسخ مناسب که حاوی یک شناسه جلسه است، وارد شده است.

به “Burp” برگردید.

در بخش Proxy و تب Intercept، اطمینان حاصل نمایید که Intercept is on تنظیم شده باشد.

به منظور ارسال درخواست، در این مثال از دکمه Login استفاده نمایید. درخواست ارسال شده با استفاده از Burp Suite قابل مشاهده می باشد.

در ادامه بر روی دکمه Forward کلیک نموده تا پاسخ HTTP که شامل toke نشست می باشد را مشاهده نمایید.

مقدار ” SessionId_363″ که در کوکی ذخیره شده است برای ردیابی نشست مورد استفاده قرار می گیرد.

در هر قسمت از صفحه کلیک نموده و پس از راست کلیک بر روی گزینه Send to Intruder کلیک نمایید.

به بخش Intruder رفته و به تب Positions مراجعه نمایید. اطمینان حاصل کنید که تنها مقدار token مورد نظر انتخاب شده باشد.

در ادامه به تب Payloads بروید و گزینه Character frobber یا Bit flipper را از بخش Payload Type انتخاب نمایید. در این مثال ما از Character frobber استفاده می نماییم.

همچنین شما می توانید جزئیات بیشتر در خصوص این Payload ها را در لینک زیر مشاهده نمایید:

portswigger.net/burp/help/intruder_payloads_types.html#charfrobber

بر روی دکمه “Start Attack” در سمت راست کنسول Burp کلیک کنید.

“Character frobber” بر روی یک ورودی رشته عمل می کند و مقدار هر موقعیت کاراکتر را به نوبه خود تغییر می دهد.

می‌توانیم از نتایج این حمله برای ارزیابی اینکه کدام کاراکتر بر اعتبار توکن تأثیر می‌گذارد استفاده کنیم.

در این مثال متوجه خواهیم شد که “Character frobber” چقدر مفید است.

توسط مرتب سازی نتایج بر اساس ستون Length یا Status ما به وضوح می‌توانیم ببینیم که کدامیک از بخش‌های یک شناسه نشست پیچیده واقعاً برای ردیابی وضعیت جلسه استفاده می‌شوند.

درباره نویسنده: احسان نیک آور

ممکن است دوست داشته باشید