Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
mitmproxy2swagger — إعادة هندسة واجهات برمجة تطبيقات REST تلقائياً عبر التقاط حركة المرور | Kitploit
أدوات/GitHubGitHub/alufers/mitmproxy2swagger
الهندسة العكسيةجمع المعلوماتأمن الويبأمن واجهات برمجة التطبيقات
GitHubalufers/mitmproxy2swagger

mitmproxy2swagger

إعادة هندسة واجهات برمجة تطبيقات REST تلقائياً عبر التقاط حركة المرور

عرض المستودع
9.6k370منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

mitmproxy2swagger

PyPI version Arch Linux repository

https://user-images.githubusercontent.com/5400940/168086818-c48f60ab-3f95-42eb-b435-c8b1a6326b81.mp4

أداة لتحويل لقطات mitmproxy تلقائيًا إلى مواصفات OpenAPI 3.0. هذا يعني أنه يمكنك هندسة REST API s العكسية تلقائيًا بمجرد تشغيل التطبيقات والتقاط حركة المرور.


🆕 جديد!

تمت إضافة دعم معالجة HAR المُصدَّر من أدوات المطوّر في المتصفح. راجع الاستخدام - HAR لمزيد من التفاصيل.


التثبيت

ستحتاج أولاً إلى python3 و pip3.

root@kitploit:~
$ pip install mitmproxy2swagger
# ... أو ...
$ pip3 install mitmproxy2swagger
# ... أو ...
$ git clone [email protected]:alufers/mitmproxy2swagger.git
$ cd mitmproxy2swagger
$ docker build -t mitmproxy2swagger .

ثم استنسخ المستودع وشغّل mitmproxy2swagger كما في الأمثلة أدناه.

الاستخدام

Mitmproxy

لإنشاء مواصفات عن طريق فحص حركة مرور HTTP ستحتاج إلى:

  1. التقاط حركة المرور باستخدام أداة mitmproxy. أنا شخصيًا أوصي باستخدام mitmweb، وهي واجهة ويب مدمجة في mitmproxy.

    root@kitploit:~
    $ mitmweb
    Web server listening at http://127.0.0.1:8081/
    Proxy server listening at http://*:9999
    ...
    

    هام

    لتكوين عميلك لاستخدام الوكيل الذي يُعرضه mitmproxy، يُرجى مراجعة وثائق mitmproxy لمزيد من المعلومات.

  2. احفظ حركة المرور في ملف تدفق (flow file).

    في mitmweb يمكنك فعل ذلك باستخدام قائمة "File" واختيار "Save":

    لقطة شاشة تظهر موقع خيار "Save" في قائمة "File"

  3. شغّل المرور الأول لـ mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <path_to_mitmproxy_flow> -o <path_to_output_schema> -p <api_prefix>
    # ... أو ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <path_to_mitmproxy_flow> -o <path_to_output_schema> -p <api_prefix>
    

    يُرجى ملاحظة أنه يمكنك استخدام مخطط موجود بالفعل، وفي هذه الحالة سيتم توسيع المخطط الموجود بالبيانات الجديدة. يمكنك أيضًا تشغيله عدة مرات بلقطات تدفق مختلفة، وسيتم دمج البيانات الملتقطة بأمان.

    <api_prefix> هو عنوان URL الأساسي لواجهة API التي ترغب في هندستها عكسيًا. ستحتاج إلى الحصول عليه من خلال ملاحظة الطلبات التي يتم إرسالها في mitmproxy.

    على سبيل المثال، إذا قام أحد التطبيقات بإرسال طلبات مثل هذه:

    root@kitploit:~
    https://api.example.com/v1/login
    https://api.example.com/v1/users/2
    https://api.example.com/v1/users/2/profile
    

    فمن المرجح أن يكون البادئة .

HAR

  1. التقط حركة المرور من أدوات المطوّر في المتصفح وصدرها.

    في أدوات المطوّر في المتصفح، انتقل إلى علامة التبويب "Network" وانقر على زر "Export HAR".

    لقطة شاشة توضح مكان زر تصدير HAR

  2. تابع بنفس الطريقة التي تتعامل بها مع تفريغ mitmproxy. سيكتشف mitmproxy2swagger ملف HAR تلقائيًا ويقوم بمعالجته.

مثال على الإخراج

راجع الأمثلة. ستجد هناك مخططًا مُنشأ وملف HTML مع التوثيق المُنشأ (عبر redoc-cli).

راجع ملف HTML المُنشأ.

التطوير والمساهمة

يستخدم هذا المشروع:

  • uv لإدارة التبعيات
  • prek لتنسيق الكود والتحقق منه
  • pytest لاختبارات الوحدة

لتثبيت التبعيات:

root@kitploit:~
uv sync

تشغيل المدققات (linters):

root@kitploit:~
uv run prek run --all-files

تثبيت خطافات prek:

root@kitploit:~
uv run prek install

تشغيل الاختبارات:

root@kitploit:~
uv run pytest

تشغيل الاختبارات مع تغطية:

root@kitploit:~
uv run pytest --cov=mitmproxy2swagger

الترخيص

MIT

تنزيل الأداة
https://api.example.com/v1
  • يجب أن يكون تشغيل المرور الأول قد أنشأ قسمًا في ملف المخطط مثل هذا:

    root@kitploit:~
    x-path-templates:
      # قم بإزالة البادئة ignore: لإنشاء نقطة نهاية مع عنوان URL الخاص بها
      # الأسطر الأقرب إلى الأعلى لها الأولوية، المطابقة جشعة
      - ignore:/addresses
      - ignore:/basket
      - ignore:/basket/add
      - ignore:/basket/checkouts
      - ignore:/basket/coupons/attach/{id}
      - ignore:/basket/coupons/attach/104754
    

    يجب عليك تعديل ملف المخطط باستخدام محرر نصوص وإزالة البادئة ignore: من المسارات التي ترغب في إنشائها. يمكنك أيضًا ضبط المعلمات التي تظهر في المسارات.

  • شغّل المرور الثاني لـ mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <path_to_mitmproxy_flow> -o <path_to_output_schema> -p <api_prefix> [--examples]
    # ... أو ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <path_to_mitmproxy_flow> -o <path_to_output_schema> -p <api_prefix> [--examples]
    

    شغّل الأمر مرة ثانية (بنفس ملف المخطط). سيلتقط الأسطر المُحرّرة ويُنشئ أوصاف نقاط النهاية.

    يُرجى ملاحظة أن mitmproxy2swagger لن يستبدل أوصاف نقاط النهاية الموجودة، إذا كنت ترغب في استبدالها، يمكنك حذفها قبل تشغيل المرور الثاني.

    إضافة --examples سيُضيف بيانات أمثلة إلى الطلبات والاستجابات. توخَّ الحذر عند استخدام هذا الخيار، فقد يُضيف بيانات حساسة (رموز مميزة، كلمات مرور، معلومات شخصية، إلخ) إلى المخطط. إضافة --headers سيُضيف بيانات الرؤوس إلى الطلبات والاستجابات. توخَّ الحذر عند استخدام هذا الخيار، فقد يُضيف بيانات حساسة (رموز مميزة، كلمات مرور، معلومات شخصية، إلخ) إلى المخطط.