
waf-checker v1.1.0
أداة تقييم تلقائي لجدران الحماية (WAF) تكتشف أنواع الجدران النارية، وتختبر 19 فئة هجوم باستخدام حمولات تفادي متقدمة، وتوفر تحليلاً للاختراق مرمّزاً بالألوان عبر CLI أو Cloudflare Worker أو Docker.
مدقق WAF
يساعدك هذا المشروع في التحقق من مدى فعالية جدار الحماية لتطبيقات الويب (WAF) في حماية منتجك ضد الهجمات الشائعة. يمكن تشغيله كـ Cloudflare Worker (مع واجهة ويب تفاعلية مدمجة) أو كأداة CLI Node.js مستقلة.
الميزات
الاختبار الأساسي
- أدخل عنوان URL الهدف، واختر طرق HTTP (GET، POST، إلخ)، وفئات الهجوم.
- يرسل طلبات بحمولات هجومية (في المعاملات، الرؤوس، أو كمسارات ملفات).
- نتائج ملونة في الطرفية والويب: 🟢 403/BLOCKED = محظور، 🔴 2xx/5xx = اختراق محتمل، 🟠 3xx = إعادة توجيه.
- عرض النتائج في جدول قابل للتصفية مع تفاصيل لكل حمولة.
فئات الهجوم (19 إجمالاً)
SQL Injection, XSS, Path Traversal, Command Injection, SSRF, NoSQL Injection, Local File Inclusion, LDAP Injection, HTTP Request Smuggling, Open Redirect, Sensitive Files, CRLF Injection, UTF8/Unicode Bypass, XXE, SSTI, HTTP Parameter Pollution, Web Cache Poisoning, IP Bypass, User-Agent.
اكتشاف WAF
- كشف نوع WAF تلقائياً قبل الاختبار (Cloudflare, AWS WAF, ModSecurity, Akamai, Imperva, F5 BIG-IP, إلخ).
- يقترح تقنيات تجاوز محددة بناءً على WAF المكتشف.
- يمكن التبديل تلقائياً إلى حمولات متقدمة خاصة بـ WAF.
الحمولات المتقدمة والتشفير
- حمولات تجاوز WAF — ترميز مزدوج، يونيكود، حالة مختلطة، حقن تعليقات، حمولات متعددة اللغات.
- حمولات محسّنة — تقنيات مراوغة حديثة.
- متغيرات الترميز — URL، يونيكود، كيان HTML، Hex، Octal، Base64 مع مجموعات تلقائية.
- تجاوزات خاصة بـ WAF لـ Cloudflare, AWS WAF, ModSecurity.
التلاعب ببروتوكول HTTP
- التلاعب بأفعال HTTP — اختبار طرق HTTP غير شائعة.
- تلويث المعاملات — تكرار وتقسيم المعاملات عبر الاستعلام/الجسم.
- خلط أنواع المحتوى — أنواع محتوى بديلة لتجاوز القواعد.
- رؤوس تهريب الطلبات.
- متغيرات حقن رأس المضيف.
- تجاوز طريقة HTTP عبر الرؤوس (
X-HTTP-Method-Override, إلخ).
الاختبار الدفعي
- اختبار عدة عناوين URL مرة واحدة.
- قابلية تكوين التوازي والتأخير بين الطلبات.
- تتبع التقدم في الوقت الفعلي.
هيكل المشروع
تم تنظيم المشروع كمستودع واحد لمساحات عمل NPM:
packages/core/: مكتبة الاختبار الأساسية للأمان، تعريف الحمولات، تواقيع بصمة WAF، ومشفِّرات الإبهام.packages/worker/: حزمة Cloudflare Worker التي تخدم واجهة الويب HTML/JS الثابتة ونقاط نهاية JSON API.packages/cli/: أداة سطر الأوامر Node.js لتنفيذ عمليات التدقيق مباشرة من الطرفية الخاصة بك.
التثبيت والبناء
من المجلد الجذر، قم بتثبيت التبعيات وبناء جميع مساحات العمل:
npm install
npm run build
كيفية التشغيل
1. الإصدار الويب (Cloudflare Worker)
لتشغيل خادم Worker للتطوير محلياً (يتطلب Wrangler):
npm run dev:worker
ستكون واجهة الويب متاحة على http://localhost:8787 (أو منفذ آخر إذا كان 8787 مشغولاً).
لنشر Worker على Cloudflare:
npx wrangler deploy --workspace=packages/worker
2. إصدار CLI (Node.js)
لتشغيل عمليات تدقيق اختبار الأمان مباشرة من سطر الأوامر:
# طباعة تعليمات CLI العامة والاستخدام
node packages/cli/dist/index.js --help
# طباعة تعليمات أمر الفحص (يسرد جميع الطرق والفئات وبائعي WAF)
node packages/cli/dist/index.js check --help
اكتشاف WAF
اكتشف بائع WAF خلف عنوان URL مستهدف:
node packages/cli/dist/index.js detect <url>
تدقيق حمولات الثغرات
تشغيل تدقيق ضد عنوان URL مستهدف:
# الفحص الافتراضي (طريقة GET، جميع فئات الحمولات)
node packages/cli/dist/index.js check https://example.com
# فحص مخصص مع طرق وفئات محددة، مع تمكين مراوغة WAF
node packages/cli/dist/index.js check https://example.com -m GET,POST -c "SQL Injection,XSS" --auto-detect-waf --encoding-variations
التدقيق الدفعي
تشغيل تدقيق دفعي لقائمة عناوين URL محددة في ملف:
node packages/cli/dist/index.js batch targets.txt --concurrency 3
3. إصدار Docker
يمكنك تشغيل CLI باستخدام Docker، إما بسحب الصورة المبنية مسبقاً من GitHub Container Registry أو ببنائها محلياً.
استخدام الصورة المبنية مسبقاً (موصى به)
الصورة المبنية مسبقاً متاحة على GitHub Container Registry على ghcr.io/sech0us3/waf-checker-cli.
سحب الصورة
docker pull ghcr.io/sech0us3/waf-checker-cli:latest
طباعة المساعدة
docker run --rm ghcr.io/sech0us3/waf-checker-cli:latest --help
تشغيل فحص
docker run --rm -it ghcr.io/sech0us3/waf-checker-cli:latest check https://example.com
تشغيل تدقيق دفعي (تركيب مجلد محلي)
docker run --rm -it -v "$(pwd):/data" ghcr.io/sech0us3/waf-checker-cli:latest batch /data/targets.txt --concurrency 3
البناء محلياً
بناء الصورة
docker build -t waf-checker-cli .
طباعة المساعدة
docker run --rm waf-checker-cli --help
تشغيل فحص
docker run --rm -it waf-checker-cli check https://example.com
تشغيل تدقيق دفعي (تركيب مجلد محلي)
docker run --rm -it -v "$(pwd):/data" waf-checker-cli batch /data/targets.txt --concurrency 3
الاختبار
لتشغيل مجموعة الاختبارات على مستوى مساحة العمل (باستخدام Vitest):
npm test
اقرأ مدونتي على yoursec.substack.com