Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

🐛 bugmorph

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

"bugmorph" یک ابزار متن‌باز، آسنکرون و سبک برای کشف نقاط ضعف امنیتی در پارامترها، هدرها، کوکی‌ها و ورودی‌های API است. این ابزار با تولید payloadهای جهشی، تحلیل رفتار پاسخ سرور و امتیازدهی هوشمند به یافته‌ها، به شما کمک می‌کند نشانه‌های آسیب‌پذیری‌هایی مانند SQLi، XSS، Command Injection، LFI و SSTI را سریع‌تر شناسایی کنید.


ویژگی‌ها

  • موتور جهش تطبیقی برای تولید payloadهای متنوع و ترکیب خانواده‌های مختلف ورودی
  • Crawler داخلی برای کشف خودکار فرم‌ها، لینک‌ها و endpointها
  • تحلیل context برای تشخیص نوع پارامتر و انتخاب payload مناسب
  • تشخیص پاسخ‌های مشکوک بر پایه‌ی reflection، خطاهای سمت سرور، تغییر طول پاسخ و تأخیر زمانی
  • Resume و deduplication با ذخیره‌سازی وضعیت اسکن برای جلوگیری از تست تکراری
  • گزارش‌های چندفرمتی شامل JSON، HTML، Markdown، CSV و SARIF
  • CLI حرفه‌ای با گزینه‌های کامل برای کنترل دقیق اسکن
  • رابط ترمینالی برای تجربه‌ی تعاملی‌تر در محیط خط فرمان
  • HTTP API برای استفاده در اتوماسیون و کار تیمی
  • سیستم افزونه برای سفارشی‌سازی رفتار اسکن
  • پشتیبانی از پروکسی برای استفاده همراه با Burp Suite یا OWASP ZAP
  • نصب ساده با pip و بدون وابستگی‌های سنگین

نصب

پیش‌نیاز: Python 3.10+

pip install bugmorph

برای نصب همراه با رابط گرافیکی/ترمینالی:

pip install bugmorph[gui]


شروع سریع

برای اسکن یک آدرس مشخص:

bugmorph scan https://example.com

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

bugmorph scan https://example.com --scope example.com

برای ذخیره‌ی خروجی در فایل:

bugmorph scan https://example.com --format json --report report.json


نمونه اسکن کامل

bugmorph scan https://target.com
--scope target.com
--workers 12
--timeout 10
--max-pages 80
--max-depth 3
--payload-limit 60
--delay-ms 150
--follow-redirects
--format html
--report full_report.html

توضیح گزینه‌ها

گزینه| توضیح "--workers 12"| تعداد درخواست‌های هم‌زمان "--timeout 10"| حداکثر زمان انتظار برای هر پاسخ (ثانیه) "--max-pages 80"| حداکثر تعداد صفحات قابل خزیدن "--max-depth 3"| حداکثر عمق دنبال‌کردن لینک‌ها "--payload-limit 60"| تعداد جهش‌ها برای هر پارامتر "--delay-ms 150"| تأخیر بین درخواست‌ها "--follow-redirects"| دنبال کردن ریدایرکت‌ها "--format html"| نوع خروجی "--report full_report.html"| مسیر فایل گزارش


فرمت‌های خروجی

  • "console" — نمایش در ترمینال
  • "json" — مناسب برای پردازش با کد
  • "html" — گزارش خوانا و قابل ارائه
  • "md" — خروجی Markdown
  • "csv" — مناسب برای Excel و ابزارهای تحلیلی
  • "sarif" — سازگار با GitHub Code Scanning

نمونه:

bugmorph scan https://api.example.com --format sarif --report api_scan.sarif


اسکن صفحات احراز هویت‌شده

اگر برنامه نیاز به ورود دارد، می‌توانید کوکی و هدرهای دلخواه را ارسال کنید:

bugmorph scan https://app.example.com/dashboard
--scope example.com
--cookies "session=abc123; csrf=xyz"
--headers '{"Authorization":"Bearer token"}'


تست APIهای POST و JSON

ارسال فرم

bugmorph scan https://api.example.com/login
--method POST
--data "username=admin&password=123"
--format json
--report login.json

ارسال JSON

bugmorph scan https://api.example.com/v1/users
--method POST
--json-body '{"id":1,"name":"test"}'
--format json
--report api_users.json


حالت کم‌سر‌وصدا

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

bugmorph scan https://target.com
--workers 5
--delay-ms 500
--timeout 15
--max-pages 30
--payload-limit 20
--proxy http://127.0.0.1:8080
--format json
--report stealth.json

همچنین می‌توانید User-Agent سفارشی تعریف کنید:

bugmorph scan https://target.com
--headers '{"User-Agent":"Mozilla/5.0 (compatible; Bugmorph/1.0)"}'


بارگذاری Payload Pack سفارشی

می‌توانید خانواده‌های payload را در یک فایل JSON تعریف کنید:

{ "sqli": ["' OR 1=1--", "admin'--"], "xss": [""], "lfi": ["../../etc/passwd"] }

سپس آن را به اسکنر بدهید:

bugmorph scan https://target.com --payload-pack my_payloads.json


رابط ترمینالی

برای اجرای تعاملی‌تر در ترمینال:

bugmorph gui

در این حالت می‌توانید URL را وارد کنید، اسکن را اجرا کنید و نتیجه را به‌صورت زنده ببینید.


HTTP API

برای راه‌اندازی سرور REST:

bugmorph serve --host 0.0.0.0 --port 8080 --api-token my_secret

ایجاد یک اسکن از طریق "curl":

curl -X POST http://localhost:8080/scan
-H "Authorization: Bearer my_secret"
-H "Content-Type: application/json"
-d '{"url":"https://example.com","scope":{"allow_domains":["example.com"]}}'

گزارش‌ها از مسیر API مربوطه قابل دریافت هستند.


سیستم افزونه

برای سفارشی‌سازی رفتار ابزار، می‌توانید افزونه‌های پایتونی خودتان را اضافه کنید.

bugmorph scan https://target.com --plugin-dir ./my_plugins

نمونه افزونه:

from mutiny.core.plugins import BasePlugin

class LogPlugin(BasePlugin): async def on_finding(self, finding): print(f"🔥 {finding.severity} found: {finding.param}")


نکات امنیتی و قانونی

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


مشارکت

گزارش باگ، پیشنهاد قابلیت جدید و Pull Request همیشه خوش‌آمد هستند. اگر قصد مشارکت دارید، لطفاً ابتدا ساختار پروژه و شیوه‌ی ارسال تغییرات را بررسی کنید.


مجوز

این پروژه تحت مجوز MIT منتشر شده است.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors