Wapiti - Web Vulnerability Scanner
.. image:: https://img.shields.io/pypi/v/wapiti3?label=PyPI&logo=PyPI&logoColor=white&color=blue
:alt: PyPI version
:target: https://pypi.python.org/pypi/wapiti3
.. image:: https://img.shields.io/pypi/pyversions/wapiti3
:alt: Supported Python versions
:target: https://github.com/wapiti-scanner/wapiti/blob/master/INSTALL.md
.. image:: https://img.shields.io/github/license/wapiti-scanner/wapiti
:alt: License: GPL-2.0
:target: https://github.com/wapiti-scanner/wapiti/blob/master/LICENSE
.. image:: https://img.shields.io/pypi/dd/wapiti3
:alt: Downloads per day on PyPi
:target: https://pypi.python.org/pypi/wapiti3
.. image:: https://codecov.io/gh/wapiti-scanner/wapiti/branch/master/graph/badge.svg?token=GFEIORAFB8
:target: https://codecov.io/gh/wapiti-scanner/wapiti
وابيتي هو ماسح ثغرات ويب مكتوب بلغة بايثون.
http://wapiti-scanner.github.io/
المتطلبات
لكي يعمل وابيتي بشكل صحيح، يحتاج إلى بايثون 3.12 أو 3.13 أو 3.14.
سيتم تثبيت جميع تبعيات وحدات بايثون تلقائيًا إذا استخدمت سكربت setup.py أو pip install wapiti3
انظر INSTALL.md <https://github.com/wapiti-scanner/wapiti/blob/master/INSTALL.md>__ لمزيد من التفاصيل حول التثبيت.
يمكن تشغيل وابيتي على ويندوز باستخدام WSL <https://learn.microsoft.com/en-us/training/modules/get-started-with-windows-subsystem-for-linux/>__.
كيف يعمل
يعمل وابيتي كماسح ثغرات "الصندوق الأسود"، وهذا يعني أنه لن
يدرس الكود المصدري لتطبيقات الويب، بل سيعمل مثل أداة fuzzer،
حيث يفحص صفحات تطبيق الويب المنشور، ويستخرج الروابط
والنماذج ويهاجم السكربتات، ويرسل الحمولات ويبحث عن رسائل
الخطأ أو السلاسل الخاصة أو السلوكيات غير الطبيعية.
الميزات العامة
- يُنشئ تقارير الثغرات بتنسيقات مختلفة (HTML, XML, JSON, TXT, CSV, Markdown).
- يمكنه إيقاف واستئناف الفحص أو الهجوم (آلية جلسات باستخدام قواعد بيانات sqlite3).
- يمكنه إظهار الألوان في الطرفية لتسليط الضوء على الثغرات.
- مستويات مختلفة من الإسهاب في المخرجات.
- طريقة سريعة وسهلة لتفعيل/تعطيل وحدات الهجوم.
- إضافة حمولة (payload) يمكن أن تكون بسهولة إضافة سطر إلى ملف نصي.
- عدد قابل للتهيئة من المهام المتزامنة لتنفيذ طلبات HTTP.
ميزات التصفح
- دعم بروكسيات HTTP وHTTPS وSOCKS5.
- مصادقة HTTP على الهدف (Basic, Digest, NTLM)
- مصادقة عن طريق ملء نماذج تسجيل الدخول.
- القدرة على تقييد نطاق الفحص (نطاق، مجلد، صفحة، عنوان URL).
- إزالة تلقائية لمعامل واحد أو أكثر في عناوين URL.
- حمايات متعددة ضد حلقات الفحص اللانهائية (على سبيل المثال، حد لقيم المعامل).
- إمكانية تحديد عناوين URL الأولى لاستكشافها (حتى لو كانت خارج النطاق).
- يمكنه استبعاد بعض عناوين URL من الفحص والهجمات (مثل: عنوان URL لتسجيل الخروج).
- استيراد ملفات تعريف الارتباط من متصفح Chrome أو Firefox أو باستخدام أداة
wapiti-getcookie.
- يمكنه تفعيل / تعطيل التحقق من شهادات SSL.
- محاولة استخراج عناوين URL من جافاسكربت (مفسر JS أساسي جدًا).
- يدعم HTML5 (يفهم وسوم HTML الحديثة).
- عدة خيارات للتحكم في سلوك الزاحف وحدوده.
- تخطي أسماء بعض المعاملات أثناء الهجوم.
- تحديد وقت أقصى لعملية الفحص.
- إضافة بعض ترويسات HTTP مخصصة أو تعيين User-Agent مخصص.
- استخدام متصفح Firefox بدون واجهة رسومية (headless) للزحف
- تحميل كود بايثون الخاص بك لحالات المصادقة المعقدة (انظر خيار
--form-script)
- إضافة URL أو PATH مخصص لتحديث قاعدة بيانات Wappalyzer
- فحص واجهات برمجة تطبيقات REST استنادًا إلى ملف OpenAPI (swagger)
الهجمات المدعومة
- حقن SQL (قائم على الأخطاء، قائم على القيم المنطقية، قائم على الوقت) وحقن XPath
- حقن LDAP (قائم على الأخطاء وقائم على القيم المنطقية)
- البرمجة النصية عبر المواقع (XSS) المنعكسة والدائمة
- كشف كشف الملفات (تضمين محلي وبعيد، require، fopen، readfile...)
- كشف تنفيذ الأوامر (eval(), system(), passtru()...)
- حقن XXE (الكيان الخارجي XML)
- حقن CRLF
- البحث عن ملفات قد تكون خطيرة على الخادم (بفضل قاعدة بيانات Nikto)
- تجاوز إعدادات htaccess الضعيفة
- البحث عن نسخ (احتياطية) من السكربتات على الخادم
- Shellshock
- تعداد المجلدات والملفات (مثل DirBuster)
- تزوير الطلبات من جانب الخادم (من خلال استخدام موقع وابيتي خارجي)
- عمليات إعادة التوجيه المفتوحة
- كشف طرق HTTP غير الشائعة (مثل PUT)
- مُقيّم CSP أساسي
- هجوم القوة الغاشمة على نموذج تسجيل الدخول (باستخدام قائمة قاموس)
- فحص ترويسات أمان HTTP
- فحص أعلام أمان ملفات تعريف الارتباط (أعلام secure وhttponly)
- كشف أساسي لتزوير الطلبات عبر المواقع (CSRF)
- بصمة تطبيقات الويب باستخدام قاعدة بيانات Wappalyzer، ويعطي معلومات CVE ذات الصلة
- تعداد وحدات CMS لأنظمة Wordpress وDrupal وJoomla وMagento وSPIP وTypo3 وغيرها
- كشف الاستيلاء على النطاقات الفرعية
- كشف Log4Shell (CVE-2021-44228)
- كشف Spring4Shell (CVE-2022-22965)
- فحص عمليات إعادة توجيه https
- فحص ثغرات رفع الملفات
- كشف أجهزة الشبكة
- حقن الحمولات داخل جسم JSON أيضًا
يدعم وابيتي كلاً من طريقتي GET وPOST لطلبات HTTP في الهجمات.
كما يدعم multipart ويمكنه حقن الحمولات في أسماء الملفات (الرفع).
يعرض تحذيرًا عند العثور على حالة شاذة (على سبيل المثال أخطاء 500 وانتهاء المهلة)
يفرق بين ثغرات XSS الدائمة والمنعكسة.
أسماء الوحدات
الهجمات المذكورة أعلاه مرتبطة بأسماء الوحدات التالية:
- backup (البحث عن نسخ من السكربتات والأرشيفات على خادم الويب)
- brute_login_form (هجوم القوة الغاشمة على نموذج تسجيل الدخول باستخدام قائمة قاموس)
- buster (وحدة شبيهة بـ DirBuster)
- cms (فحص لكشف أنظمة CMS وإصداراتها)
- cookieflags (يفحص أعلام Secure وHttpOnly)
- crlf (حقن CR-LF في ترويسات HTTP)
- csp (كشف غياب CSP أو ضعف إعدادات CSP)
- csrf (يكشف النماذج غير المحمية ضد CSRF أو التي تستخدم رموز anti-CSRF ضعيفة)
- exec (تنفيذ كود أو حقن أوامر)
- file (اجتياز المسار، تضمين الملفات، إلخ)
- htaccess (قيود htaccess غير مضبوطة بشكل صحيح)
- htp (تحديد تقنيات الويب المستخدمة عبر قاعدة بيانات HashThePlanet)
- http_headers (فحص ترويسات أمان HTTP)
- https_redirect (فحص عمليات إعادة توجيه https)
- ldap (كشف حقن LDAP القائم على الأخطاء والقائم على القيم المنطقية)
- log4shell (يكشف المواقع المعرضة لثغرة CVE-2021-44228)
- methods (البحث عن طرق HTTP غير الشائعة المتاحة مثل PUT)
- network_device (البحث عن ملفات شائعة لكشف أجهزة الشبكة)
- nikto (البحث عن ثغرات معروفة عن طريق اختبار وجود URL وفحص الاستجابات)
- permanentxss (إعادة فحص الهدف بالكامل بعد تنفيذ وحدة xss بحثًا عن الحمولات الملوثة سابقًا)
- printer (كشف الطابعات الشبكية، واسترجاع معلومات الطراز والبرامج الثابتة)
- redirect (عمليات إعادة التوجيه المفتوحة)
- shellshock (اختبار هجوم Shellshock، انظر
Wikipedia <https://en.wikipedia.org/wiki/Shellshock_%28software_bug%29>__)
- spring4shell (يكشف المواقع المعرضة لثغرة CVE-2020-5398)
- sql (كشف حقن SQL القائم على الأخطاء والقائم على القيم المنطقية)
- ssl (تقييم أمان إعداد شهادات SSL/TLS، يتطلب
sslscan <https://github.com/rbsec/sslscan>__)
- ssrf (تزوير الطلبات من جانب الخادم)
- takeover (الاستيلاء على النطاق الفرعي)
- timesql (ثغرات حقن SQL المكتشفة بمنهجية قائمة على الوقت)
- upload (ثغرات رفع الملفات)
- wapp (ليست وحدة هجوم، تسترجع تقنيات الويب المستخدمة على الهدف مع إصداراتها وفئاتها، وتجد CVEs المقابلة)
- wp_enum (تعداد الإضافات والقوالب على موقع Wordpress)
- xss (وحدة حقن XSS)
- xxe (هجوم الكيان الخارجي XML)
يمكن إعطاء أسماء الوحدات كقائمة مفصولة بفواصل باستخدام خيار "-m" أو "--module".
كيفية الحصول على أفضل النتائج
للعثور على المزيد من الثغرات (بما أن بعض الهجمات قائمة على الأخطاء)، يمكنك تعديل
إعدادات خادم الويب الخاص بك.
على سبيل المثال، يمكنك تعيين القيم التالية في إعدادات PHP لديك:
.. code-block::
safe_mode = Off
display_errors = On (recommended)
magic_quotes_gpc = Off
allow_url_fopen = On
mysql.trace_mode = On
أين يمكن الحصول على المساعدة
في الطرفية، اكتب فقط الأمر التالي للحصول على الاستخدام الأساسي:
يمكنك أيضًا إلقاء نظرة على صفحة الدليل (wapiti.1 أو wapiti.1.html) لمزيد من التفاصيل حول كل خيار.
لدينا أيضًا ويكي رسمي أكثر شمولاً: https://github.com/wapiti-scanner/wapiti/wiki
إذا كان لديك سؤال آخر، تحقق أولاً من FAQ <https://github.com/wapiti-scanner/wapiti/blob/master/doc/FAQ.md>__
إذا وجدت خللًا، فأنشئ مشكلة (issue) على: https://github.com/wapiti-scanner/wapiti/issues
كيف تساعد مشروع وابيتي
يمكنك:
- دعم المشروع عن طريق التبرع ( http://sf.net/donate/index.php?group_id=168625 )
- إنشاء أو تحسين وحدات الهجوم
- إنشاء أو تحسين مولدات وقوالب التقارير
- إرسال إصلاحات الأخطاء، والتصحيحات...
- كتابة بعض الواجهات الرسومية (GUIs)
- إنشاء أداة لتحويل ملفات PCAP إلى ملفات جلسات Wapiti بصيغة sqlite3
- تحدث عن وابيتي لمن حولك
الترخيص
تم إصدار وابيتي بموجب رخصة جنو العمومية العامة الإصدار الثاني (GPL).
الكود المصدري متاح على Github <https://github.com/wapiti-scanner/wapiti>__.
تم إنشاؤه بواسطة Nicolas SURRIBAS.
الرعاة
Cyberwatch https://cyberwatch.com/
Security For Everyone https://securityforeveryone.com/
IP-Nina https://ip-ninja.com/
إخلاء المسؤولية
وابيتي هو برنامج للأمن السيبراني. يقوم بإجراء تقييمات أمنية على هدف محدد، مما قد يؤدي إلى أعطال وانهيارات على الهدف، بالإضافة إلى فقدان محتمل للبيانات.
استخدام وابيتي لمهاجمة هدف دون موافقة مسبقة من مالكه يعد غير قانوني. تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية المعمول بها.
المطورون والأشخاص المشاركون في مشروع وابيتي لا يتحملون أي مسؤولية ولا يكونون مسؤولين عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.