Reverse Engineering an API
عندما تواجه واجهة برمجة تطبيقات (API) غير موثقة، يصبح من الضروري استخدام الهندسة العكسية لفهم كيفية التفاعل معها. تتضمن هذه العملية جمع الطلبات ورسم خريطة لوظائف واجهة برمجة التطبيقات. هناك طريقتان رئيسيتان لتحقيق ذلك:
جمع يدوي باستخدام Postman
توثيق تلقائي باستخدام mitmproxy2swagger
1. بناء مجموعة في Postman
الهدف: عكس هندسة واجهة برمجة التطبيقات من خلال التقاط وتنظيم الطلبات المرسلة إليها.
الخطوات:
إطلاق Postman:
افتح Postman وأنشئ مساحة عمل جديدة (مثل مساحة عمل ACE).
إعداد الوكيل:
استخدم زر Capture Requests في أسفل نافذة Postman لتمكين الوكيل.
تأكد من ضبط المنفذ ليتناسب مع الرقم الذي تم إعداده في FoxyProxy (مثل 5555).
التقاط الطلبات:
أضف عنوان URL الهدف إلى حقل "URL must contain"، ثم اضغط على زر Start Capture.
افتح متصفح الويب وانتقل إلى صفحة الهبوط الخاصة بالهدف، ثم استخدم FoxyProxy لتمكين خيار Postman.
استكشاف التطبيق:
استخدم التطبيق بشكل دقيق من خلال النقر على الروابط، التسجيل، تسجيل الدخول، تحديث المعلومات، وما إلى ذلك. الهدف هو التقاط جميع الطلبات الممكنة.
إيقاف Proxy:
بعد الانتهاء من استكشاف جميع الميزات، أوقف Proxyفي Postman.
إنشاء مجموعة crAPI:
أنشئ مجموعة جديدة، ثم أعد تسمية المجموعة إلى crAPI Proxy Collection.
انتقل إلى جلسة تصحيح الوكيل وافتح علامة تبويب الطلبات. حدد جميع الطلبات التي تم التقاطها وأضفها إلى مجموعة crAPI.
تنظيم الطلبات:
أعد تسمية الطلبات وقم بتجميع الطلبات المماثلة في مجلدات.
2. التوثيق التلقائي باستخدام mitmproxy2swagger
الهدف: تسهيل جمع الطلبات وتحويلها إلى وثيقة API موثقة.
الخطوات:
إعداد mitmproxy:
افتح وحدة التحكم وأدخل الأمر:
mitmweb
سيساعدك ذلك في إعداد وكيل على المنفذ 8080.
التقاط الطلبات:
استخدم متصفح الويب لاستكشاف تطبيق الهدف مرة أخرى. سيتم التقاط جميع الطلبات بواسطة mitmproxy.
حفظ الطلبات:
بعد الانتهاء من استكشاف التطبيق، انتقل إلى خادم mitmweb واضغط على File > Save لحفظ الطلبات.
إنشاء وثيقة API:
استخدم الأداة mitmproxy2swagger لتحويل الطلبات إلى ملف Open API 3.0 YAML:
sudo mitmproxy2swagger -i /Downloads/flows -o spec.yml -p http://crapi.apisec.ai -f flow
تحرير ملف spec.yml:
افتح ملف spec.yml وتحقق مما إذا كانت بعض النقاط قد تم تجاهلها. قم بإزالة "ignore:" من النقاط التي تريد تضمينها.
استيراد إلى Postman:
بعد إعداد وثيقة API، افتح Postman واضغط على زر Import لاستيراد ملف spec.yml كمجموعة.
Last updated