
مجموعة أدوات اختبار أمني آلي لـ GraphQL
Graph Crawler هي أقوى مجموعة أدوات اختبار آلي لأي نقطة نهاية GraphQL.
جديد: يمكنه البحث عن نقاط النهاية لك باستخدام أداة Graphinder القوية من Escape Technology. فقط قم بتوجيهه نحو نطاق وأضف الخيار '-e' وسيقوم Graphinder بإجراء تعداد النطاقات الفرعية + البحث في الدلائل الشائعة عن نقاط نهاية GraphQL. بعد كل هذا، سيتولى GraphCrawler المهمة ويعمل على كل اكتشاف. إذا لم يمكن فحص المخطط (schema)، يمكنك توفيره كملف json باستخدام الخيار '-s'.
سيمر عبر التحقق مما إذا كانت التحويرات (mutations) مفعلة، والتحقق من أي استعلامات حساسة متاحة، مثل المستخدمين والملفات، وسيختبر أيضًا أي استعلامات سهلة يجدها لمعرفة ما إذا كان المصادقة مطلوبة.
إذا لم يكن الفحص الداخلي (introspection) مفعلًا على نقطة النهاية، فسيتحقق مما إذا كان خادم Apollo Server ثم يمكنه تشغيل Clairvoyance لتجريب القوة الغاشمة والحصول على الاقتراحات لمحاولة بناء المخطط بأنفسنا. (انظر مشروع Clairvoyance لمزيد من التفاصيل حول هذا).
ثم سيقوم بتسجيل النتائج من 1 إلى 10 حيث 10 هي الأكثر خطورة.
إذا كنت ترغب في التعمق أكثر في المخطط، يمكنك أيضًا استخدام graphql-path-enum للبحث عن مسارات لأنواع معينة، مثل معرفات المستخدمين، عناوين البريد الإلكتروني، إلخ.
أتمنى أن يوفر لك هذا الوقت بقدر ما وفر لي.
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ ██████╗██████╗ █████╗ ██╗ ██╗██╗ ███████╗██████╗
██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██║ ██╔════╝██╔══██╗
██║ ███╗██████╔╝███████║██████╔╝███████║██║ ██████╔╝███████║██║ █╗ ██║██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║██║ ██╔══██╗██╔══██║██║███╗██║██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║██║ ██║██║ ██║ ██║╚██████╗██║ ██║██║ ██║╚███╔███╔╝███████╗███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚═╝ ╚═╝
خيار الإخراج غير مطلوب وسيتم الإخراج افتراضيًا إلى schema.json 2. كـ Docker ملاحظة: نظرًا لأن GraphCrawler يستخدم بعض الخيارات التي تحتاج إلى ملفات كمدخلات أو تنتج مخرجات، يُنصح بالاحتفاظ بكل تلك الملفات في دليل عمل وتثبيته في مسار الحاوية /workspace. سيتم حفظ كل مخرجاتك في ذلك الدليل المثبت.
docker build -t graphcrawler:1.2 .
docker run -v /path_to_workspace:/workspace -it graphcrawler:1.2 -u https://test.com/graphql/api -o <filename> -a "<headers>"
قائمة الكلمات من google-10000-english