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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitLabGitLab/omar2535/graphqler
تحليل الثغرات الأمنيةاختبار أمان APIأمن الويبالاختبار العشوائي
GitLabomar2535/graphqler

GraphQLer

☸أول أداة اختبار لواجهة برمجة تطبيقات GraphQL تراعي التبعيات على الإطلاق!

عرض المستودعالموقع الإلكتروني
منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

أداة اختبار GraphQL API الوحيدة التي تراعي التبعيات!

python3.12 Maintainability lint tests_status security

GraphQLer هي أداة متطورة مصممة لاختبار واجهات برمجة تطبيقات GraphQL بشكل ديناميكي مع التركيز على القدرة على التكيف. تقدم مجموعة من الميزات المتطورة التي تبسط عملية الاختبار وتضمن تحليلاً قوياً لواجهات GraphQL. تدير GraphQLer الكائنات والموارد التي تم إنشاؤها بكفاءة، وتحدد التبعيات على الكائنات والاستعلامات والطفرات (queries and mutations) بشكل فعال، وتصحح الأخطاء ديناميكياً داخل الاستعلامات بناءً على قيود واجهة API. تم استخدام GraphQLer لاكتشاف العديد من الأخطاء في واجهات GraphQL API ذات المستوى الإنتاجي!

Video Demo

الميزات الرئيسية

  • مراعاة التبعيات: تشغيل الاستعلامات والطفرات بناءً على تبعياتها!
  • الاختبار الديناميكي: تتبع الموارد التي تم إنشاؤها أثناء الاختبار
  • تصحيح الأخطاء: محاولة إصلاح الطلبات حتى تقبلها واجهة GraphQL API
  • جمع الإحصائيات: عرض النتائج في ملف مرتب
  • سهولة الاستخدام: كل ما تحتاجه هو نقطة النهاية (endpoint) وربما رمز المصادقة (authentication token) 😁

البدء

للبدء في استخدام GraphQLer، اطلع على دليل التثبيت.

الاستخدام

root@kitploit:~
❯ python3 main.py --help
usage: main.py [-h] [--compile] [--fuzz] [--run] --path PATH [--auth AUTH] --url URL

options:
  -h, --help   show this help message and exit
  --compile    runs on compile mode
  --fuzz       runs on fuzzing mode
  --run        run both the compiler and fuzzer (equivalent of running --compile then running --fuzz)
  --path PATH  directory location for saved files and files to be used from
  --auth AUTH  authentication token Example: 'Bearer arandompat-abcdefgh'
  --url URL    remote host URL

فيما يلي خطوات استخدام هذا البرنامج لاختبار واجهة GraphQL API الخاصة بك. ينقسم الاستخدام إلى مرحلتين: التجميع (compilation) و الفحص العشوائي (fuzzing).

  • وضع التجميع (Compilation mode): هذا الوضع مسؤول عن تشغيل استعلام التدقيق الداخلي (introspection query) على واجهة API المُعطاة وتوليد رسم بياني للتبعيات (dependency graph)
  • وضع الفحص العشوائي (Fuzzing mode): هذا الوضع مسؤول عن التنقل في الرسم البياني للتبعيات وإرسال طلبات اختبار إلى واجهة API

يتضمن البرنامج وضعاً ثالثاً لتسهيل الاستخدام يُسمى وضع التشغيل (run). هذا الوضع يجمع مرحلتي التجميع والفحص العشوائي في أمر واحد.

وضع التجميع

root@kitploit:~
(.env) python main.py --compile --url <URL> --path <SAVE_PATH>

بعد التجميع، يمكنك عرض النتائج المجمعة في <SAVE_PATH>/compiled. بالإضافة إلى ذلك، سيتم إنشاء رسم بياني يسمى dependency_graph.png للفحص. يمكن وضع علامة يدويًا على أي UNKNOWNS في ملفات .yaml المجمعة؛ ومع ذلك، إذا لم يتم وضع علامة، فسيظل برنامج الفحص العشوائي يشغلها ولكن دون استخدام سلسلة تبعية.

وضع الفحص العشوائي

root@kitploit:~
(.env) python main.py --fuzz --url <URL> --path <SAVE_PATH>

أثناء الفحص العشوائي، يتم تسجيل الإحصائيات المتعلقة بواجهة GraphQL API وأي عدد من الطلبات الجارية في وحدة التحكم. يتم كتابة أي رموز إرجاع للطلبات إلى <SAVE_PATH>/stats.txt. يتم الاحتفاظ بجميع السجلات أثناء الفحص العشوائي في <SAVE_PATH>/logs/fuzzer.log. سيخبرك ملف السجل بالضبط بالطلبات التي تم إرسالها إلى أي نقاط نهاية (endpoints)، وما كانت الاستجابة. يمكن استخدام هذا لتحليل النتائج بشكل أكبر.

وضع التشغيل

يشغل كلاً من وضع التجميع ووضع الفحص العشوائي

root@kitploit:~
(.env) python main.py --run --url <URL> --path <SAVE_PATH>

الميزات المتقدمة

هناك أيضًا متغيرات يمكن تعديلها في ملف constants.py. تتوافق هذه المتغيرات مع ميزات محددة تم تنفيذها في GraphQLer، ويمكن ضبطها حسب رغبتك.

تنزيل الأداة
اسم المتغيروصف المتغيرنوع المتغيرالافتراضي
MAX_LEVENSHTEIN_THRESHOLDمسافة ليفينشتاين بين الكائنات ومعرفات الكائناتعدد صحيح20
MAX_OBJECT_CYCLESأقصى عدد مرات يمكن فيها إظهار نفس الكائن في نفس الاستعلام/الطفرةعدد صحيح3
MAX_OUTUPT_SELECTOR_DEPTHأقصى عمق يمكن توسيع ناتج الاستعلام/الطفرة (مثل حالة المحددات العودية اللانهائية)عدد صحيح3
USE_OBJECTS_BUCKETما إذا كان سيتم تخزين معرفات الكائنات للاستخدام المستقبلي أم لامنطقيTrue
USE_DEPENDENCY_GRAPHما إذا كان سيتم استخدام ميزة مراعاة التبعيات أم لامنطقيTrue
MAX_FUZZING_ITERATIONSأقصى عدد من حمولات الفحص العشوائي لتشغيلها على عقدةعدد صحيح5
MAX_TIMEأقصى وقت للتشغيلعدد صحيح3600