بازگشت به وبلاگ

راهنمای کامل استفاده از Burp Suite به عنوان پروکسی برای تست نفوذ وب‌اپلیکیشن‌ها با مثال‌ها

Burp Suite ابزار استانداردی برای تست نفوذ است که برای intercept و تحلیل ترافیک HTTP استفاده می‌شود. در این مقاله به بررسی نحوه تنظیم آن به عنوان پروکسی و شروع تست وب‌اپلیکیشن‌ها می‌پردازیم.

📅۱۵ مرداد ۱۴۰۵
```html

Burp Suite — استانداردی در ابزارهای هر متخصص امنیت وب‌اپلیکیشن‌ها است. ماژول پروکسی آن امکان ضبط، تحلیل و تغییر ترافیک HTTP/HTTPS بین مرورگر و سرور را به صورت زنده فراهم می‌کند. در این راهنما، نحوه تنظیم Burp Suite به عنوان پروکسی، ماژول‌های مورد استفاده برای تست نفوذ پایه و چگونگی جلوگیری از اشتباهات رایج مبتدیان را بررسی خواهیم کرد.

Burp Suite چیست و چرا برای تست نفوذ نیاز است

Burp Suite یک پلتفرم یکپارچه برای تست امنیت وب‌اپلیکیشن‌ها است که توسط شرکت PortSwigger توسعه یافته است. این ابزار در سه ویرایش موجود است: Community (رایگان)، Professional و Enterprise. برای اکثر وظایف سطح ابتدایی و متوسط، نسخه Community کافی است، اگرچه Professional دسترسی به اسکنر آسیب‌پذیری فعال و قابلیت‌های پیشرفته Intruder را فراهم می‌کند.

نقش اصلی Burp Suite در تست نفوذ، نقش پروکسی man-in-the-middle است. این ابزار بین مرورگر شما و وب‌اپلیکیشن هدف قرار می‌گیرد و تمام ترافیک HTTP/HTTPS را ضبط می‌کند. این امکان را فراهم می‌کند:

  • مشاهده درخواست‌ها و پاسخ‌های «خام» که مرورگر از کاربر پنهان می‌کند
  • تغییر پارامترهای درخواست‌ها به صورت زنده — تغییر هدرها، بدنه درخواست POST، کوکی‌ها
  • تکرار درخواست‌ها با داده‌های تغییر یافته بدون بارگذاری مجدد صفحه
  • به‌طور خودکار مقادیر پارامترها را برای جستجوی آسیب‌پذیری‌ها بررسی کنید
  • ساخت نقشه کامل وب‌اپلیکیشن (Spider/Crawler)
  • یافتن آسیب‌پذیری‌های کلاس‌های SQLi، XSS، IDOR، SSRF و ده‌ها مورد دیگر

Burp Suite هم توسط تست‌کنندگان حرفه‌ای در پروژه‌های تجاری و هم توسط شرکت‌کنندگان در برنامه‌های Bug Bounty (HackerOne، Bugcrowd) استفاده می‌شود. این اولین ابزاری است که هنگام شروع کار در زمینه امنیت اپلیکیشن‌ها بر روی ماشین کاری نصب می‌شود.

⚠️ مهم:

از Burp Suite فقط برای تست اپلیکیشن‌هایی که مجوز کتبی از صاحب آن‌ها دارید یا برای محیط‌های آموزشی (DVWA، WebGoat، HackTheBox، TryHackMe) استفاده کنید. تست غیرمجاز جرم است.

چگونه پروکسی در Burp Suite کار می‌کند

وقتی شما Burp Suite را راه‌اندازی می‌کنید و ماژول پروکسی را فعال می‌کنید، یک سرور پروکسی محلی بر روی ماشین شما راه‌اندازی می‌شود. به‌طور پیش‌فرض، این سرور بر روی آدرس 127.0.0.1:8080 گوش می‌دهد. مرورگر برای استفاده از این آدرس به عنوان پروکسی HTTP/HTTPS تنظیم می‌شود.

طرح کار به صورت زیر است:

مرورگر
   │
   │  درخواست HTTP/HTTPS
   ▼
Burp Suite Proxy (127.0.0.1:8080)
   │
   │  ← در اینجا Burp ضبط می‌کند، نمایش می‌دهد، و اجازه تغییر می‌دهد
   │
   ▼
سرور وب هدف (example.com)
   │
   │  پاسخ HTTP/HTTPS
   ▼
Burp Suite Proxy
   │
   │  ← در اینجا Burp پاسخ سرور را ضبط می‌کند
   │
   ▼
مرورگر (پاسخ را دریافت می‌کند)
  

برای ترافیک HTTPS، Burp Suite به‌طور خودکار گواهی‌های TLS خود را برای هر دامنه در حین اجرا تولید می‌کند. برای اینکه مرورگر هشدارهایی درباره اتصال ناامن نشان ندهد، لازم است گواهی CA ریشه Burp را در مراکز صدور گواهی معتبر مرورگر یا سیستم‌عامل نصب کنید. این کار امکان رمزگشایی ترافیک HTTPS را فراهم می‌کند — بدون این مرحله، شما فقط داده‌های رمزگذاری شده را مشاهده خواهید کرد.

حالت ضبط (Intercept) می‌تواند فعال یا غیرفعال شود. وقتی Intercept فعال است — هر درخواست در Burp «یخ می‌زند» و منتظر تصمیم شما می‌ماند: عبور بدون تغییر، تغییر یا ریست. وقتی غیرفعال است — Burp ترافیک را به‌طور شفاف عبور می‌دهد، اما همچنان آن را در تاریخچه HTTP ثبت می‌کند.

تنظیم مرورگر و نصب گواهی CA

این مهم‌ترین مرحله برای شروع کار است. دو گزینه را بررسی می‌کنیم: استفاده از مرورگر داخلی Burp و تنظیم دستی Chrome/Firefox.

گزینه 1: مرورگر داخلی Burp Suite (برای مبتدیان توصیه می‌شود)

از نسخه 2021.x به بعد، Burp Suite با یک مرورگر داخلی Chromium عرضه می‌شود که از قبل برای کار با پروکسی تنظیم شده و شامل گواهی CA است. این سریع‌ترین راه برای شروع کار است:

  1. Burp Suite را باز کنید → به بخش Proxy بروید
  2. دکمه Open Browser را بزنید
  3. Chromium باز می‌شود که از قبل برای پروکسی Burp تنظیم شده است
  4. به سایت مورد نظر بروید — ترافیک بلافاصله ضبط خواهد شد

گزینه 2: تنظیم دستی Firefox

Firefox برای تنظیم دستی ترجیح داده می‌شود، زیرا دارای مخزن گواهی‌های خود است (به سیستم وابسته نیست):

مرحله 1. تنظیم پروکسی در Firefox:

  1. Firefox را باز کنید → تنظیمات → پروکسی سرور (یا از افزونه FoxyProxy استفاده کنید)
  2. گزینه «تنظیم دستی پروکسی» را انتخاب کنید
  3. پروکسی HTTP: 127.0.0.1، پورت: 8080
  4. تیک «استفاده از این پروکسی برای HTTPS» را بزنید
  5. روی OK کلیک کنید

مرحله 2. نصب گواهی CA Burp:

  1. اطمینان حاصل کنید که Burp Suite در حال اجرا است و پروکسی فعال است
  2. در مرورگر به آدرس بروید: http://burpsuite یا http://127.0.0.1:8080
  3. روی «CA Certificate» کلیک کنید — فایل cacert.der دانلود می‌شود
  4. در Firefox: تنظیمات → حریم خصوصی و امنیت → گواهی‌ها → مشاهده گواهی‌ها
  5. زبان «مراکز صدور گواهی» → وارد کردن → فایل دانلود شده را انتخاب کنید
  6. تیک «به این CA برای شناسایی وب‌سایت‌ها اعتماد کنید» را بزنید
  7. روی OK کلیک کنید

پس از این مراحل، Firefox به گواهی‌هایی که Burp برای وب‌سایت‌های HTTPS تولید می‌کند اعتماد خواهد کرد و شما می‌توانید ترافیک رمزگذاری شده را بدون هشدار ضبط کنید.

ضبط و تحلیل ترافیک HTTP/HTTPS

پس از تنظیم مرورگر، می‌توانید به کار با ترافیک بپردازید. امکانات اصلی تب پروکسی در Burp Suite را بررسی می‌کنیم.

HTTP History — تاریخچه تمام درخواست‌ها

تب HTTP History (Proxy → HTTP History) — تاریخچه تمام درخواست‌هایی است که از طریق Burp عبور کرده‌اند. در اینجا شما خواهید دید:

  • روش درخواست (GET، POST، PUT، DELETE و غیره)
  • URL و پارامترها
  • هدرهای HTTP (شامل کوکی، Authorization، User-Agent)
  • بدنه درخواست (برای POST/PUT)
  • کد پاسخ سرور (200، 302، 403، 500...)
  • اندازه و زمان پاسخ

با کلیک راست بر روی هر درخواست → شما منوی زمینه‌ای با گزینه‌ها دریافت می‌کنید: ارسال به Repeater، Intruder، Scanner، Decoder و سایر ماژول‌ها. این روند اصلی کار در Burp است.

Intercept — حالت ضبط فعال

Intercept را فعال کنید (دکمه «Intercept is on/off») — و درخواست بعدی از مرورگر در Burp «یخ می‌زند». شما محتوای آن را خواهید دید و می‌توانید:

  • Forward — درخواست را بدون تغییر عبور دهید
  • Drop — درخواست را ریست کنید (سرور آن را دریافت نخواهد کرد)
  • داده‌ها را به صورت دستی تغییر دهید — هر فیلد را ویرایش کنید و روی Forward کلیک کنید
  • Action → Send to Repeater — ارسال به Repeater برای تحلیل بیشتر

مثال عملی: شما یک درخواست POST از فرم ورود را ضبط می‌کنید. در بدنه درخواست، پارامترهای username=admin&password=12345 را مشاهده می‌کنید. شما می‌توانید مقادیر را مستقیماً در Burp تغییر دهید و روی Forward کلیک کنید — سرور داده‌های تغییر یافته را دریافت خواهد کرد.

ماژول‌های کلیدی: Repeater، Intruder، Scanner

Burp Suite فقط یک پروکسی نیست. این یک اکوسیستم کامل از ابزارها است. سه ماژول که بیشتر استفاده می‌شوند را بررسی می‌کنیم.

Repeater — تست دستی درخواست‌ها

Repeater — اسب کار تست‌کننده است. شما یک درخواست را از HTTP History به آن ارسال می‌کنید (کلیک راست → Send to Repeater)، و سپس می‌توانید:

  • هر پارامتر درخواست را تغییر دهید
  • درخواست را دوباره با دکمه Send ارسال کنید
  • پاسخ سرور را در پنل سمت راست مشاهده کنید
  • پاسخ‌ها را برای گزینه‌های مختلف درخواست مقایسه کنید
  • تاریخچه تمام گزینه‌های ارسال شده را ذخیره کنید

سناریوی معمول استفاده از Repeater: شما پارامتر id=5 را در درخواست GET پیدا کرده‌اید. درخواست را به Repeater ارسال می‌کنید و شروع به بررسی می‌کنید: چه اتفاقی می‌افتد اگر id=1، id=0، id=-1، id=999999؟ این یک بررسی پایه برای IDOR (Insecure Direct Object Reference) است.

Intruder — перебор خودکار

Intruder به شما این امکان را می‌دهد که به‌طور خودکار مقادیر پارامترها را بر اساس یک دیکشنری یا الگو بررسی کنید. حالت‌های اصلی حمله:

حالت توضیح کاربرد
Sniper یک پارامتر، یک دیکشنری بروت‌فورس یک فیلد
Battering Ram چندین پارامتر، یک مقدار زمانی که نیاز به یک مقدار مشابه در چندین مکان دارید
Pitchfork چندین پارامتر، چندین دیکشنری (همزمان) بررسی ورود + رمز از جفت‌های آماده
Cluster Bomb چندین پارامتر، تمام ترکیب‌ها بررسی کامل تمام ترکیب‌ها

در نسخه Community، سرعت Intruder به‌طور مصنوعی محدود شده است (حدود 1 درخواست در ثانیه). در نسخه Professional، محدودیتی وجود ندارد. برای دور زدن این محدودیت در Community از افزونه‌های شخص ثالث یا ابزار ffuf/wfuzz در کنار Burp استفاده می‌شود.

Scanner — جستجوی خودکار آسیب‌پذیری‌ها (Pro)

Scanner فقط در نسخه Professional موجود است. این ابزار به‌طور خودکار درخواست‌های ضبط شده را تحلیل کرده و آسیب‌پذیری‌ها را جستجو می‌کند: SQL Injection، XSS، XXE، SSRF، Path Traversal و دیگران. در نسخه Community، اسکنینگ غیرفعال وجود دارد — Burp ترافیک را تحلیل کرده و مکان‌های بالقوه خطرناک را بدون حملات فعال برجسته می‌کند.

جستجوی آسیب‌پذیری‌های رایج از طریق Burp Suite

سناریوهای عملی جستجوی رایج‌ترین آسیب‌پذیری‌ها با استفاده از Burp Suite را بررسی می‌کنیم.

SQL Injection (SQLi)

بررسی پایه برای SQLi از طریق Repeater:

  1. درخواستی با پارامتری که به پایگاه داده می‌رود ضبط کنید (برای مثال، id=5 یا search=test)
  2. به Repeater ارسال کنید
  3. به مقدار یک علامت نقل قول اضافه کنید: id=5'
  4. روی Send کلیک کنید و پاسخ را بررسی کنید — اگر سرور خطای SQL برگرداند یا رفتار تغییر کرد — نشانه‌ای از SQLi وجود دارد
  5. بررسی بولی: id=5 AND 1=1 در مقابل id=5 AND 1=2 — اگر پاسخ‌ها متفاوت باشد، نشانه‌ای از وجود تزریق است

Reflected XSS

بررسی برای XSS منعکس شده:

  1. پارامتری را پیدا کنید که مقدار آن در صفحه پاسخ نمایش داده می‌شود
  2. درخواست را به Repeater ارسال کنید
  3. بارگذاری آزمایشی را وارد کنید: <script>alert(1)</script>
  4. پاسخ را بررسی کنید — اگر بارگذاری بدون فرار به HTML وارد شد، XSS وجود دارد
  5. بررسی کنید که آیا تگ script فیلتر می‌شود: امتحان کنید <img src=x onerror=alert(1)>

IDOR (Insecure Direct Object Reference)

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

  1. درخواست‌هایی را پیدا کنید که به اشیاء با ID عددی دسترسی دارند: /api/user/profile?id=1234
  2. به Repeater ارسال کنید
  3. ID را به مقدار دیگری تغییر دهید: id=1235، id=1
  4. اگر سرور داده‌های کاربر دیگری را بدون خطای مجوز برگرداند — این IDOR است

بررسی مجوز و مدیریت جلسه

Burp Suite به راحتی امکان بررسی مکانیزم‌های مجوز را فراهم می‌کند:

  • درخواست به منبع محافظت شده را در Repeater کپی کنید
  • مقدار کوکی جلسه را حذف یا تغییر دهید
  • بررسی کنید که آیا سرور خطای مجوز برمی‌گرداند یا هنوز هم داده‌ها را ارائه می‌دهد
  • بررسی کنید که آیا توکن‌های JWT با تغییر الگوریتم به none کار می‌کنند

Burp Suite + پروکسی خارجی: چرا این نیاز است

Burp Suite یک پروکسی محلی است. اما در برخی سناریوها، تست‌کننده نیاز دارد که ترافیک Burp را از طریق یک پروکسی خارجی عبور دهد. بیایید بررسی کنیم که چه زمانی و چرا این نیاز است.

سناریو 1: تست از آدرس IP واقعی

برخی وب‌اپلیکیشن‌ها دارای محافظت بر اساس جغرافیایی یا شهرت IP هستند. اگر اپلیکیشن هدف ترافیک را از مراکز داده یا IPهای VPN شناخته شده مسدود کند، تست‌کننده می‌تواند از پروکسی‌های مسکونی استفاده کند — این پروکسی‌ها دارای آدرس‌های IP واقعی کاربران خانگی هستند و برای سرور به عنوان یک بازدیدکننده عادی به نظر می‌رسند.

سناریو 2: دور زدن محدودیت نرخ در تست فعال

در حین اسکن فعال یا کار با Intruder، سرور هدف ممکن است به دلیل تعداد زیاد درخواست‌ها IP شما را مسدود کند. چرخش از طریق یک استخر پروکسی به توزیع بار بر روی IPهای مختلف کمک می‌کند. برای این کارها، پروکسی‌های مراکز داده مناسب هستند — آنها سرعت و ثبات بالایی را فراهم می‌کنند که در تست‌های خودکار حیاتی است.

چگونه پروکسی upstream را در Burp Suite تنظیم کنیم

Burp Suite از پروکسی‌های upstream (پروکسی‌های سطح بالاتر) پشتیبانی می‌کند. تنظیمات:

  1. Burp Suite را باز کنید → تنظیمات (یا گزینه‌های کاربر در نسخه‌های قدیمی)
  2. به بخش Network → Connections → Upstream Proxy Servers بروید
  3. روی Add کلیک کنید
  4. در فیلد Destination host، * (برای تمام هاست‌ها) یا دامنه خاصی را وارد کنید
  5. آدرس و پورت پروکسی خارجی را وارد کنید
  6. نوع را انتخاب کنید: HTTP، SOCKS4 یا SOCKS5
  7. در صورت نیاز، نام کاربری و رمز عبور را وارد کنید
  8. روی OK کلیک کنید
# مثال پیکربندی پروکسی upstream در Burp Suite:

Destination host: *
Proxy host:       proxy.example.com
Proxy port:       8888
Auth type:        Basic
Username:         your_login
Password:         your_password
Proxy type:       SOCKS5
  

پس از این تنظیمات، تمام ترافیکی که Burp به سرورهای هدف ارسال می‌کند، از طریق پروکسی upstream مشخص شده عبور خواهد کرد. مرورگر همچنان به Burp در 127.0.0.1:8080 متصل می‌شود، و Burp به‌طور مستقل درخواست‌ها را از طریق پروکسی خارجی ارسال می‌کند.

مقایسه انواع پروکسی برای تست نفوذ

نوع پروکسی سرعت ناشناس بودن کاربرد در تست نفوذ
مرکز داده بالا متوسط اسکن فعال، Intruder
مسکونی متوسط بالا دور زدن جغرافیایی، شبیه‌سازی کاربر
موبایل متوسط بسیار بالا تست APIهای موبایل، دور زدن WAFهای سخت

نکات و اشتباهات رایج در کار با Burp Suite

در سال‌های کار با Burp Suite، جامعه تست‌کنندگان فهرستی از اشتباهات رایج مبتدیان و تکنیک‌های اثبات شده جمع‌آوری کرده است. در اینجا مهم‌ترین آنها آورده شده است.

اشتباهات رایج مبتدیان

  • فراموش کرده‌اند گواهی CA را نصب کنند. نشانه: وب‌سایت‌های HTTPS هشدار ناامن بودن اتصال را نشان می‌دهند، ترافیک ضبط نمی‌شود. راه حل: گواهی را طبق دستورالعمل بالا نصب کنید.
  • Intercept فعال باقی مانده است. مرورگر «یخ زده» — صفحات بارگذاری نمی‌شوند. راه حل: به Proxy → Intercept بروید و روی «Intercept is on» کلیک کنید تا ضبط را غیرفعال کنید.
  • استثنائات برای ترافیک سیستم را اضافه نکرده‌اند. Burp ترافیک به‌روزرسانی‌های Windows، آنتی‌ویروس و غیره را ضبط می‌کند. فیلترها را در Proxy → Options → Intercept Client Requests تنظیم کنید تا فقط دامنه‌های مورد نیاز را ضبط کنید.
  • بدون مجوز به سرور production تست می‌کنند. این غیرقانونی است. فقط از محیط‌های تست یا اپلیکیشن‌هایی با مجوز صریح استفاده کنید.
  • به تب Target → Site Map توجه نمی‌کنند. در اینجا Burp نقشه کل اپلیکیشن را می‌سازد — تمام نقاط پایانی، پارامترها و پاسخ‌های کشف شده. این منبع اطلاعاتی بی‌نظیری در مرحله شناسایی است.

تکنیک‌های مفید

  • Match and Replace. در Proxy → Options → Match and Replace می‌توانید جایگزینی خودکار برای مقادیر در درخواست‌ها تنظیم کنید. به عنوان مثال، به‌طور خودکار هدر اضافه کنید یا User-Agent را به موبایل تغییر دهید.
  • Decoder. ماژول Decoder به شما این امکان را می‌دهد که به سرعت داده‌ها را رمزگشایی/رمزگذاری کنید: Base64، URL-encoding، HTML-entities، Hex. این ابزار در تحلیل توکن‌ها و پارامترها بسیار مفید است.
  • Comparer. این امکان را می‌دهد که دو پاسخ سرور را بایت به بایت مقایسه کنید. دو درخواست مشابه را به Comparer ارسال کنید و بلافاصله تفاوت‌ها را مشاهده کنید.
  • BApp Store. Burp Suite از افزونه‌ها (BApp Store) پشتیبانی می‌کند. افزونه‌های محبوب: Autorize (بررسی مجوز)، Logger++ (ثبت‌نام پیشرفته)، Turbo Intruder (بروت‌فورس سریع در Community)، JWT Editor.
  • پروژه را ذخیره کنید. در نسخه Professional می‌توانید پروژه را ذخیره کنید. در Community از Export → Save state استفاده کنید تا تاریخچه HTTP را هنگام بستن از دست ندهید.
  • از Scope استفاده کنید. در Target → Scope دامنه اپلیکیشن هدف را اضافه کنید. این به Burp اجازه می‌دهد ترافیک غیر مرتبط را فیلتر کند و تاریخچه HTTP را با درخواست‌های Google، CDN و غیره شلوغ نکند.

منابع مفید برای تمرین

منبع نوع برای چه کسانی
PortSwigger Web Security Academy آزمایشگاه‌های رایگان + تئوری مبتدیان و سطح متوسط
DVWA (Damn Vulnerable Web App) محیط محلی تمرین بدون ریسک
HackTheBox / TryHackMe پلتفرم‌های آنلاین CTF تمرین سناریوهای واقعی
WebGoat (OWASP) محیط محلی با درس‌ها یادگیری OWASP Top 10

نتیجه‌گیری

Burp Suite یک ابزار قدرتمند و در عین حال در دسترس برای تست امنیت وب‌اپلیکیشن‌ها است. ماژول پروکسی آن دید کاملی به ترافیک HTTP/HTTPS می‌دهد و ترکیب Proxy → Repeater → Intruder اکثر وظایف تست نفوذ دستی را پوشش می‌دهد. می‌توانید به صورت رایگان از نسخه Community و آزمایشگاه‌های رایگان PortSwigger Web Security Academy شروع کنید — این بهترین راه برای تسلط بر ابزار در عمل است.

مراحل کلیدی برای شروع: Burp Suite را نصب کنید، مرورگر را از طریق FoxyProxy تنظیم کنید، گواهی CA را نصب کنید، دامنه هدف را به Scope اضافه کنید — و شما آماده کار هستید. پس از تسلط بر ماژول‌های پایه، به یادگیری افزونه‌های موجود در BApp Store بپردازید: Autorize، Turbo Intruder و JWT Editor به طور قابل توجهی قابلیت‌های شما را گسترش خواهند داد.

اگر در چارچوب تست نفوذ شما نیاز به تست اپلیکیشن‌هایی با جغرافیای غیرمعمول، دور زدن مسدودسازی‌های IP یا شبیه‌سازی ترافیک کاربران واقعی دارید، توصیه می‌کنیم پروکسی upstream را در Burp Suite تنظیم کنید. برای وظایفی که ناشناس بودن بالا و دور زدن محافظت‌های مبتنی بر شهرت IP اهمیت دارد، پروکسی‌های مسکونی مناسب هستند — آنها ترافیک را از آدرس‌های IP واقعی کاربران فراهم می‌کنند و خطر مسدودسازی را در حین تست به حداقل می‌رسانند.

```