Wapiti - أداة فحص ثغرات الويب
Wapiti هو ماسح ضوئي لثغرات الويب مكتوب بلغة Python.
http://wapiti-scanner.github.io/
متطلبات
لكي يعمل Wapiti بشكل صحيح، يحتاج إلى Python 3.10 أو 3.11
سيتم تثبيت جميع تبعيات وحدة Python تلقائيًا إذا كنت تستخدم البرنامج النصي setup.py أو pip install wapiti3
راجع INSTALL.md لمزيد من التفاصيل حول التثبيت.
يمكن تشغيل Wapiti على نظام Windows من خلال استخدام WSL.
كيف يعمل
يعمل Wapiti بمثابة ماسح ضوئي لثغرات "الصندوق الأسود"، مما يعني أنه لن يدرس الكود المصدري لتطبيقات الويب ولكنه سيعمل كأداة غامضة، حيث يقوم بمسح صفحات تطبيق الويب المنشور، واستخراج الروابط والنماذج ومهاجمة البرامج النصية. إرسال الحمولات والبحث عن رسائل الخطأ أو السلاسل الخاصة أو السلوكيات غير الطبيعية.
الميزات العامة
- يُنشئ تقارير الثغرات الأمنية بتنسيقات مختلفة (HTML، XML، JSON، TXT، CSV).
- يمكن تعليق واستئناف الفحص أو الهجوم (آلية الجلسة باستخدام قواعد بيانات sqlite3).
- يمكن أن يوفر لك الألوان في المحطة لتسليط الضوء على نقاط الضعف.
- مستويات مختلفة من اللفظ.
- طريقة سريعة وسهلة لتنشيط/إلغاء تنشيط وحدات الهجوم.
- يمكن أن تكون إضافة حمولة أمرًا سهلاً مثل إضافة سطر إلى ملف نصي.
- عدد قابل للتكوين من المهام المتزامنة لتنفيذ طلبات HTTP.
ميزات التصفح
- دعم وكلاء HTTP، HTTPS وSOCKS5.
- مصادقة HTTP على الهدف (Basic، Digest، NTLM)
- المصادقة عن طريق ملء نماذج تسجيل الدخول.
- القدرة على تقييد نطاق الفحص (المجال، المجلد، الصفحة، عنوان URL).
- الإزالة التلقائية لمعلمة واحدة أو أكثر في عناوين URL.
- وسائل حماية متعددة ضد فحص الحلقات التي لا نهاية لها (على سبيل المثال، الحد الأقصى لقيم المعلمة).
- إمكانية تعيين عناوين URL الأولى لاستكشافها (حتى لو لم تكن في النطاق).
- يمكن استبعاد بعض عناوين URL الخاصة بالفحص والهجمات (على سبيل المثال: عنوان URL لتسجيل الخروج).
- قم باستيراد ملفات تعريف الارتباط من متصفح Chrome أو Firefox أو باستخدام أداة wapiti-getcookie.
- يمكن تفعيل/إلغاء تنشيط التحقق من شهادات SSL.
- استخراج عناوين URL من ملفات Flash SWF.
- حاول استخراج عناوين URL من جافا سكريبت (مترجم JS أساسي جدًا).
- إدراك HTML5 (فهم علامات HTML الحديثة).
- عدة خيارات للتحكم في سلوك الزاحف وحدوده.
- تخطي بعض أسماء المعلمات أثناء الهجوم.
- تحديد الحد الأقصى للوقت لعملية المسح.
- إضافة بعض رؤوس HTTP المخصصة أو تعيين وكيل مستخدم مخصص.
- استخدام متصفح Firefox بدون رأس للزحف
- تحميل رمز python الخاص بك لحالات المصادقة المعقدة (راجع خيار --form-script)
- إضافة عنوان URL مخصص أو PATH لتحديث قاعدة بيانات Wappalyzer
- قم بمسح واجهات برمجة تطبيقات REST باستخدام ملف OpenAPI (اختيال).
الهجمات المدعومة
- حقن SQL (تعتمد على الأخطاء، وتعتمد على المنطق، وتعتمد على الوقت) وحقن XPath
- حقن LDAP (قائمة على الأخطاء وعلى أساس منطقي)
- البرمجة النصية عبر المواقع (XSS) منعكسة ودائمة
- كشف الكشف عن الملفات (المحلي والبعيد، يتطلب، fopen، readfile ...)
- الكشف عن تنفيذ الأوامر (eval()، system()، passtru()...)
- حقن XXE (الكيان الخارجي Xml).
- حقن CRLF
- ابحث عن الملفات التي يحتمل أن تكون خطرة على الخادم (بفضل Nikto db)
- تجاوز تكوينات htaccess الضعيفة
- البحث عن نسخ (احتياطية) من البرامج النصية على الخادم
- صدمة
- تعداد المجلدات والملفات (مثل DirBuster)
- تزوير الطلب من جانب الخادم (من خلال استخدام موقع ويب Wapiti خارجي)
- فتح عمليات إعادة التوجيه
- اكتشاف طرق HTTP غير الشائعة (مثل PUT)
- مقيم CSP الأساسي
- نموذج تسجيل الدخول Brute Force (باستخدام قائمة القاموس)
- التحقق من رؤوس أمان HTTP
- التحقق من علامات أمان ملفات تعريف الارتباط (العلامات الآمنة وعلامات httponly)
- الكشف الأساسي عن تزوير طلبات المواقع المتقاطعة (CSRF).
- توفر بصمات تطبيقات الويب باستخدام قاعدة بيانات Wappalyzer معلومات ذات صلة بمكافحة التطرف العنيف
- تعداد وحدات CMS لـ Wordpress، Drupal، Joomla، SPIP، إلخ
- الكشف عن عمليات الاستحواذ على النطاق الفرعي
- الكشف عن Log4Shell (CVE-2021-44228).
- الكشف عن Spring4Shell (CVE-2020-5398).
- تحقق من عمليات إعادة التوجيه https
- التحقق من وجود ثغرات أمنية في تحميل الملفات
- الكشف عن أجهزة الشبكة
- قم بحقن الحمولات داخل نص JSON أيضًا
يدعم Wapiti كلاً من أساليب GET وPOST HTTP للهجمات. كما أنه يدعم الأجزاء المتعددة ويمكنه إدخال الحمولات في أسماء الملفات (التحميل). عرض تحذير عند العثور على حالة شاذة (على سبيل المثال 500 خطأ ومهلة) يُحدث فرقًا بين ثغرات XSS الدائمة والمنعكسة.
أسماء الوحدات
ترتبط الهجمات المذكورة أعلاه بأسماء الوحدات التالية:
- النسخ الاحتياطي (البحث في نسخ البرامج النصية والمحفوظات على خادم الويب)
- brute_login_form (نموذج تسجيل الدخول للقوة الغاشمة باستخدام قائمة القاموس)
- المغفل (DirBuster مثل الوحدة النمطية)
- cms (المسح لاكتشاف CMS وإصداراتها)
- علامات ملفات تعريف الارتباط (التحقق من علامات Secure وHttpOnly)
- crlf (حقن CR-LF في رؤوس HTTP)
- csp (اكتشاف نقص CSP أو تكوين CSP الضعيف)
- csrf (يكتشف النماذج غير المحمية ضد CSRF أو التي تستخدم رموزًا ضعيفة لمكافحة CSRF)
- exec (تنفيذ التعليمات البرمجية أو إدخال الأوامر)
- الملف (اجتياز المسار، وإدراج الملف، وما إلى ذلك)
- htaccess (قيود htaccess التي تم تكوينها بشكل خاطئ)
- htp (تحديد تقنيات الويب المستخدمة في قاعدة بيانات HashThePlanet)
- http_header (تحقق من رؤوس أمان HTTP)
- https_redirect (تحقق من عمليات إعادة التوجيه https)
- ldap (اكتشاف حقن LDAP القائم على الأخطاء والمستند إلى المنطق)
- log4shell (يكتشف مواقع الويب المعرضة لـ CVE-2021-44228)
- الأساليب (ابحث عن أساليب HTTP المتاحة غير الشائعة مثل PUT)
- Network_device (ابحث عن الملفات الشائعة لاكتشاف أجهزة الشبكة)
- nikto (ابحث عن نقاط الضعف المعروفة عن طريق اختبار وجود عنوان URL والتحقق من الردود)
- Permanentxss (أعد فحص الهدف بالكامل بعد تنفيذ وحدة xss للبحث عن الحمولات الملوثة مسبقًا)
- إعادة التوجيه (عمليات إعادة التوجيه المفتوحة)
- Shellshock (اختبار هجوم Shellshock، راجع ويكيبيديا)
- Spring4Shell (يكتشف مواقع الويب المعرضة لـ CVE-2020-5398)
- SQL (الكشف عن حقن SQL القائم على الأخطاء والمستند إلى المنطق)
- ssl (تقييم أمان تكوين شهادة SSL/TLS، يتطلب sslscan)
- ssrf (تزوير طلب جانب الخادم)
- الاستيلاء (الاستيلاء على النطاق الفرعي)
- timesql (تم اكتشاف ثغرات أمنية في حقن SQL باستخدام المنهجية المستندة إلى الوقت)
- تحميل (ثغرة أمنية في تحميل الملفات)
- wapp (ليست وحدة هجوم، فهي تسترد تقنيات الويب مع الإصدارات والفئات المستخدمة على الهدف، وتبحث عن CVEs المقابلة)
- wp_enum (تعداد المكونات الإضافية والموضوعات على موقع ويب Wordpress)
- xss (وحدة حقن XSS)
- xxe (هجوم كيان خارجي XML)
يمكن إعطاء أسماء الوحدات كقائمة مفصولة بفواصل باستخدام الخيار "-m" أو "--module".
كيفية الحصول على أفضل النتائج
للعثور على المزيد من الثغرات الأمنية (نظرًا لأن بعض الهجمات تعتمد على الأخطاء)، يمكنك تعديل تكوينات خادم الويب الخاص بك.
على سبيل المثال، يمكنك تعيين القيم التالية في تكوين PHP الخاص بك:
الوضع الآمن = إيقاف
Display_errors = قيد التشغيل (مستحسن)
magic_quotes_gpc = معطل
allow_url_fopen = قيد التشغيل
mysql.trace_mode = قيد التشغيل
أين يمكن الحصول على المساعدة
في الموجه، فقط اكتب الأمر التالي للحصول على الاستخدام الأساسي:
وابيتي -ح
يمكنك أيضًا إلقاء نظرة على الصفحة الرئيسية (wapiti.1 أو wapiti.1.html) للحصول على مزيد من التفاصيل حول كل خيار.
لدينا أيضًا موقع ويكي رسمي أكثر شمولاً: https://github.com/wapiti-scanner/wapiti/wiki
إذا كان لديك سؤال آخر، تحقق أولاً من الأسئلة الشائعة
إذا وجدت خطأ، املأ مشكلة: https://github.com/wapiti-scanner/wapiti/issues
كيفية مساعدة مشروع Wapiti
أنت تستطيع :
- ادعم المشروع بالتبرع ( http://sf.net/donate/index.php?group_id=168625 )
- إنشاء أو تحسين وحدات الهجوم
- إنشاء أو تحسين مولدات التقارير والقوالب
- إرسال إصلاحات الأخطاء والتصحيحات ...
- اكتب بعض واجهات المستخدم الرسومية
- قم بإنشاء أداة لتحويل ملفات PCAP إلى ملفات جلسة Wapiti sqlite3
- تحدث عن Wapiti من حولك
الترخيص
تم إصدار Wapiti بموجب رخصة جنو العامة الإصدار 2 (GPL). كود المصدر متاح على جيثب.
تم إنشاؤها بواسطة نيكولاس سوريباس.
الرعاة
سايبرواتش https://cyberwatch.fr/
الأمن للجميع https://securityforeveryone.com/
تنصل
Wapiti هو برنامج للأمن السيبراني. فهو يقوم بإجراء تقييمات أمنية على هدف محدد، مما قد يؤدي إلى حدوث أعطال وتعطل على الهدف، فضلاً عن احتمال فقدان البيانات.
يعد استخدام Wapiti لمهاجمة هدف دون الحصول على موافقة مسبقة من مالكه أمرًا غير قانوني. وتقع على عاتق المستخدم النهائي مسؤولية الالتزام بجميع القوانين المحلية المعمول بها.
لا يتحمل المطورون والأشخاص المشاركون في مشروع Wapiti أي مسؤولية ولا يتحملون المسؤولية عن أي سوء استخدام أو ضرر ناتج عن هذا البرنامج.