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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
web_exploit_detector — مكتشف الثغرات على الويب هو تطبيق Node.js يُستخدم للكشف عن الإصابات المحتملة والكود الخبيث والملفات المشبوهة في بيئات استضافة الويب | Kitploit
أدوات/GitHubGitHub/polaris64/web_exploit_detector
ماسحات الثغرات الأمنيةتحليل الكودأمن الويبتحليل البرمجيات الخبيثة
GitHubpolaris64/web_exploit_detector

web_exploit_detector

مكتشف الثغرات على الويب هو تطبيق Node.js يُستخدم للكشف عن الإصابات المحتملة والكود الخبيث والملفات المشبوهة في بيئات استضافة الويب

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

الأكثر شعبية

عرض الكل →

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

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

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

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

كاشف استغلالات الويب

شعار كاشف استغلالات الويب

مقدمة

كاشف استغلالات الويب هو تطبيق Node.js (ووحدة NPM) يُستخدم لاكتشاف الإصابات المحتملة والكود الخبيث والملفات المشبوهة في بيئات استضافة الويب. هذا التطبيق مُصمم ليعمل على خوادم الويب التي تستضيف موقعًا إلكترونيًا واحدًا أو أكثر. سيؤدي تشغيل التطبيق إلى إنشاء قائمة بالملفات التي يحتمل أن تكون مصابة، بالإضافة إلى وصف للإصابة ومراجع لمصادر عبر الإنترنت تتعلق بها.

اعتبارًا من الإصدار 1.1.0، يتضمن التطبيق أيضًا أدوات مساعدة لإنشاء ومقارنة لقطات لهيكل الدليل، مما يتيح للمستخدمين معرفة ما إذا تم تعديل أي ملفات أو إضافتها أو إزالتها.

التطبيق مستضاف هنا على GitHub حتى يستفيد منه الآخرون، بالإضافة إلى السماح للآخرين بالمساهمة بقواعد الكشف الخاصة بهم.

روابط

  • موقعي الإلكتروني: https://www.polaris64.net/
  • مدونتي في الأمن السيبراني، والتي تحتوي على مقالات تصف بعض هذه الاستغلالات وكيفية إزالتها: https://www.polaris64.net/blog/cyber-security
  • اتصل بي
  • وحدة NPM

التثبيت

المستخدمون العاديون

أبسط طريقة لتثبيت كاشف استغلالات الويب هي كوحدة NPM عامة: -

npm install -g web_exploit_detector

إذا كنت تستخدم Linux أو نظام تشغيل آخر مستند إلى Unix، فقد تحتاج إلى تشغيل هذا الأمر كجذر (مثل sudo npm install -g web_exploit_detector).

التحديث

يجب تحديث الوحدة بانتظام لضمان وجود جميع قواعد الكشف الحديثة. تشغيل الأمر أعلاه سيقوم دائمًا بتنزيل أحدث إصدار مستقر (مختبر). لتحديث إصدار تم تثبيته بالفعل، ما عليك سوى تشغيل ما يلي: -

npm update -g web_exploit_detector

مرة أخرى، قد تضطر إلى استخدام الأمر sudo كما هو مذكور أعلاه.

المستخدمون التقنيون

يمكنك أيضًا استنساخ مستودع Git وتشغيل البرنامج النصي مباشرةً كما يلي: -

  1. git clone https://github.com/polaris64/web_exploit_detector
  2. cd web_exploit_detector
  3. npm install

التشغيل

من وحدة NPM

إذا قمت بتثبيت كاشف استغلالات الويب كوحدة NPM (انظر أعلاه)، فإن تشغيل الماسح الضوئي يكون ببساطة عن طريق تشغيل الأمر التالي، مع تمرير المسار إلى مجلد الجذر الخاص بك (موقع ملفات موقعك): -

wed-scanner --webroot=/var/www/html

تتوفر خيارات أخرى لسطر الأوامر، فقط قم بتشغيل wed-scanner --help لرؤية رسالة مساعدة تصفها.

تشغيل البرنامج النصي بهذه الطريقة سينتج مخرجات قابلة للقراءة البشرية على وحدة التحكم. هذا مفيد جدًا عند تشغيل البرنامج النصي مع cron على سبيل المثال، حيث يمكن إرسال المخرجات كبريد إلكتروني كلما تم تشغيل البرنامج النصي.

يدعم البرنامج النصي أيضًا كتابة النتائج بتنسيق JSON أكثر قابلية للقراءة بواسطة الكمبيوتر لمعالجتها لاحقًا. لتفعيل هذا الإخراج، راجع وسيط سطر الأوامر --output.

من مستودع Git المستنسخ

ما عليك سوى استدعاء البرنامج النصي عبر node وتمرير المسار إلى مجلد الجذر الخاص بك كما يلي: -

node index.js --webroot=/var/www/html

لقطات الدليل المتكررة

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

اللقطات

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

تخزن اللقطة كل مسار ملف مع تجزئة SHA-256 لمحتويات الملف. التجزئة، أو الملخص، هي ملخص صغير لرسالة، وهي في هذه الحالة محتويات الملف. إذا تغيرت محتويات الملف، حتى بطريقة صغيرة جدًا، ستصبح التجزئة مختلفة تمامًا. يوفر هذا طريقة جيدة لاكتشاف أي تغييرات في محتويات الملف.

الاستخدام

يتم تثبيت الأداتين التاليتين أيضًا كجزء من كاشف استغلالات الويب: -

  • wed-generate-snapshot: تسمح هذه الأداة بإنشاء لقطة لجميع الملفات (بشكل متكرر) في دليل محدد بواسطة "--webroot". سيتم حفظ اللقطة في ملف محدد في خيار "--output".
  • wed-compare-snapshot: بمجرد إنشاء لقطة، يمكن مقارنتها بالمحتويات الحالية لنفس الدليل. يتم تحديد اللقطة المراد فحصها باستخدام خيار "--snapshot". يتم تخزين الدليل الأساسي للمقارنة داخل اللقطة، ولكن إذا تغير الدليل الأساسي منذ إنشاء اللقطة، فيمكن استخدام خيار --webroot.

سير العمل

يمكن إنشاء اللقطات حسب الحاجة، ولكن كقاعدة عامة يجب إنشاؤها كلما كان الموقع في حالة نظيفة (غير مصابة) وكلما تم إجراء تغيير شرعي. بالنسبة للمواقع القائمة على أنظمة إدارة المحتوى مثل WordPress، يجب إنشاء اللقطات بانتظام حيث أن التحميلات الجديدة ستتسبب في تغيير الحالة الجديدة عن اللقطة المخزنة. بالنسبة للمواقع التي لا ينبغي أن تتغير ملفاتها أبدًا، يمكن إنشاء لقطة واحدة ثم استخدامها إلى أجل غير مسمى للتأكد من عدم تغير أي شيء بالفعل.

الاستخدام كوحدة

الملف src/web-exploit-detector.js هو وحدة ES6 تصدر مجموعة القواعد كـ rules بالإضافة إلى عدد من الدوال: -

  • executeTests(settings): تشغل مدقق الاستغلالات بناءً على كائن settings الممرر. للاستخدام، يرجى مراجعة ملف index.js.
  • formatResult(result): تأخذ نتيجة اختبار result واحدة من المصفوفة التي أرجعتها executeTests() وتنشئ سلسلة من النتائج جاهزة للإخراج لهذا الاختبار.
  • getFileList(path): ترجع مصفوفة من الملفات من المسار الأساسي path باستخدام readDirRecursive().
  • processRulesOnFile(file, rules): تعالج جميع القواعد من المصفوفة rules على ملف واحد file (مسار نصي).
  • readDirRecursive(path): دالة تكرارية ترجع Promise التي سيتم حلها بمصفوفة من جميع الملفات في path والأدلة الفرعية.

الملف src/cli.js هو واجهة سطر أوامر بسيطة لهذه الوحدة كما هو مستخدم بواسطة البرنامج النصي wed-scanner، لذا فإن قراءة هذا البرنامج النصي تُظهر طريقة واحدة يمكن بها استخدام هذه الوحدة.

يستخدم المشروع Babel لتجميع وحدات ES6 في "src" إلى وحدات JavaScript عادية في "lib". إذا كنت تستخدم إصدارًا قديمًا من Node.js، فيمكن استيراد الوحدات باستخدام require() من دليل "lib" بدلاً من ذلك.

البناء

تحتوي الحزمة على Babel كاعتماد تطويري وبرامج "build" و "watch:build". عند تشغيل برنامج "build" (npm run build)، سيتم تجميع وحدات ES6 الموجودة في "./src" وحفظها في "./lib"، حيث يتم تضمينها بواسطة برامج CLI.

دليل "./lib" مضمن في المستودع حتى يتمكن أي مستخدم من استنساخ المستودع وتشغيل التطبيق مباشرة دون الحاجة إلى تثبيت اعتمادات التطوير وبناء التطبيق.

استبعاد النتائج حسب القاعدة

في بعض الأحيان، ستقوم القواعد، خاصة تلك الموسومة بـ suspicion، بتحديد ملف نظيف كاستغلال محتمل. لهذا السبب، تم تضمين نظام يسمح باستبعاد الملفات من الفحص لقاعدة معينة.

يقوم برنامج wed-results-to-exceptions بأخذ ملف إخراج من برنامج الكاشف الرئيسي (راجع خيار --output) ويمنحك خيار استبعاد كل ملف بدوره لكل قاعدة محددة. يتم تخزين جميع الملفات المستبعدة في ملف باسم wed-exceptions.json (في الدليل الرئيسي للمستخدم) والذي يتم قراءته بواسطة البرنامج الرئيسي قبل تشغيل المسح الضوئي. إذا تم إدراج ملف في هذا الملف، فسيتم تخطي جميع القواعد المرفقة (بواسطة المعرف) عند فحص هذا الملف.

للحصول على تعليمات الاستخدام، ما عليك سوى تشغيل wed-results-to-exceptions. ستحتاج إلى أن يكون لديك ملف JSON إخراج صالح من تشغيل سابق للكاشف الرئيسي باستخدام خيار --output أولاً.

للمستخدمين الذين يعملون مباشرة مع مستودع Git، قم بتشغيل node results_to_exceptions.js في الدليل الجذر للمشروع.

محرك القواعد

يعمل التطبيق باستخدام مجموعة من "القواعد" التي يتم تحميلها عند تشغيل التطبيق. تتكون كل قاعدة من معرف واسم ووصف وقائمة عناوين URL ووسوم وعلامة إهمال، والأهم من ذلك مجموعة من الاختبارات.

يجب أن يكون كل اختبار فردي واحدًا مما يلي: -

  • تعبير عادي: أبسط نوع من الاختبارات، أي قيمة تطابق التعبير العادي ستجتاز الاختبار.
  • رد اتصال منطقي: يجب أن ترجع دالة رد الاتصال قيمة منطقية تشير إلى ما إذا كانت القيمة تجتاز الاختبار. رد الاتصال حر في تنفيذ أي عمليات متزامنة.
  • رد اتصال Promise: يجب أن ترجع دالة رد الاتصال Promise التي يتم حلها بقيمة منطقية تشير إلى ما إذا كانت القيمة تجتاز الاختبار. هذا النوع من رد الاتصال حر في تنفيذ أي عمليات غير متزامنة.

أنواع الاختبارات التالية مدعومة: -

  • "path": يُستخدم للتحقق من مسار الملف. يجب أن يوجد هذا الاختبار ويجب أن يقيم إلى true إذا كان مسار الملف يعتبر مطابقًا للقاعدة.
  • "content": يُستخدم للتحقق من محتويات ملف. هذا الاختبار اختياري ولن تتم قراءة محتويات الملف وإرسالها إلا للقواعد التي تنفذ هذا النوع من الاختبارات. عندما يكون هذا الاختبار دالة، سيتم تمرير المحتوى (سلسلة) كوسيطة أولى وسيتم تمرير مسار الملف كوسيطة ثانية، مما يسمح للاختبار بإجراء عمليات إضافية على الملف.

توسيع القواعد

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

هذا يقودني إلى أسباب جعل هذا التطبيق متاحًا كمشروع مفتوح المصدر: أولاً حتى تستفيد أنت والآخرون منه، وثانيًا حتى نتمكن جميعًا من التعاون للمساهمة بقواعد الكشف بحيث يكون التطبيق محدثًا دائمًا.

المساهمة بالقواعد

إذا اكتشفت استغلالًا لا يتم كشفه بواسطة هذه الأداة، فيرجى إما الاتصال بي لإعلامي، أو حتى أفضل، كتابة قاعدتك الخاصة وإضافتها إلى مجموعة القواعد التابعة لجهات خارجية (rules/third-party/index.js)، ثم أرسل لي طلب سحب (pull request).

لا تقلق إذا كنت لا تعرف كيفية كتابة القواعد الخاصة بك؛ الشيء الأكثر أهمية هو إضافة القاعدة، لذا لا تتردد في إرسال أكبر قدر ممكن من المعلومات حول الاستغلال وسأحاول إنشاء قاعدة خاصة بي له.

يتم تصنيف القواعد، لكن أبسط طريقة لإضافة قاعدتك الخاصة هي إضافتها إلى مجموعة القواعد التابعة لجهات خارجية المذكورة أعلاه. تتم كتابة معرفات القواعد بالتنسيق التالي: "المؤلف:النوع:الأنواع الفرعية:معرف القاعدة". على سبيل المثال، إحدى قواعدي هي "P64:php:cms:wordpress:wso_webshell". "P64" هو أنا (المؤلف)، "php:cms:wordpress" هو التجمع (قاعدة خاصة بـ PHP، لنظام إدارة المحتوى المسمى WordPress) و "wso_webshell" هو معرف القاعدة المحدد. عند كتابة قواعدك الخاصة، حاول اتباع هذا التنسيق، واستبدل "P64" باسم مستخدم GitHub الخاص بك أو معرف فريد آخر.

اختبارات الوحدات والتحقق من الأسلوب

يحتوي المشروع على مجموعة من اختبارات Jasmine التي يمكن تشغيلها باستخدام npm test. كما يحتوي على تكوين ESLint، ويمكن تشغيل ESLint باستخدام npm run lint.

عند التطوير، يمكن أيضًا تشغيل الاختبارات كلما تغير ملف مصدر عن طريق تشغيل npm run watch:test. لتشغيل الاختبارات و ESLint، يمكن استخدام برنامج npm run watch:all.

يرجى ملاحظة أنه ما لم يكن لديك Jasmine و/أو nodemon مثبتين بالفعل، يجب عليك تشغيل npm install في وضع غير إنتاجي لضمان تثبيت اعتمادات التطوير.

إشادات

شكرًا لمستخدم Reddit mayupvoterandomly على اقتراح وظيفة لقطة الدليل التي تمت إضافتها في الإصدار 1.1.0 وعلى اقتراح قواعد جديدة ستتم إضافتها قريبًا.

الترخيص

ترخيص ISC

حقوق الطبع والنشر (c) 2017, Simon Pugnet

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

البرنامج موفر "كما هو" ويتخلى المؤلف عن جميع الضمانات المتعلقة بما في ذلك جميع الضمانات الضمنية الخاصة بالتسويق والملاءمة لغرض معين. لا يكون المؤلف مسؤولاً بأي حال من الأحوال عن أي أضرار خاصة أو مباشرة أو غير مباشرة أو تبعية أو أي أضرار أخرى ناتجة عن فقدان الاستخدام أو البيانات أو الأرباح، سواء كانت ناتجة عن عقد أو إهمال أو أي تصرف آخر ناشئ عن أو مرتبط باستخدام أو أداء هذا البرنامج.

تنزيل الأداة