
ماسح ضوئي للتحليل الثابت لثغرات XSS (CVE-2020-11023) في JavaScript. يكتشف إصدارات jQuery الضعيفة وأنماط التلاعب الخطيرة بـ DOM في صفحات الويب والملفات المحلية.
هل تطاردك أشباح ثغرات البرمجة النصية عبر المواقع (XSS) المختبئة في كود JavaScript الخاص بك؟ هل تقلق من أن CVE-2020-11023 قد تترك تطبيقات الويب الخاصة بك عرضة للهجوم؟ لا مزيد من الخوف! ماسح CVE-2020-11023 هنا لمساعدتك في العثور على تلك الثغرات المزعجة وحسمها!
هذه الأداة السريعة والموثوقة وللتحليل الثابت (Static Analysis) مصممة لمسح ملفات JavaScript وصفحات الويب بحثًا عن العلامات الدالة على ثغرات XSS، خاصة تلك المرتبطة بـ CVE-2020-11023. تركز الأداة على إصدارات jQuery الأقدم من 3.5.0، والتي يُعرف عنها أنها قابلة للاختراق.
إخلاء مسؤولية: تذكر، هذه الأداة تقوم بـ تحليل ثابت فقط. لا تنفذ أي كود، لذا لا يمكنها ضمان قابلية الاستغلال بنفس درجة اليقين التي يوفرها التحليل الديناميكي. قم دائمًا بمراجعة النتائج يدويًا وإجراء اختبارات إضافية لتأكيد المخاطر الفعلية!
.js..html() و .append() و .after() و .before() و .replaceWith() عند استخدامها مع مدخلات يحتمل أن تكون غير آمنة.window.location و document.cookie وغيرها.requests (pip install requests)beautifulsoup4 (pip install beautifulsoup4)packaging (pip install packaging)استنساخ هذا المستودع:
git clone <your-repository-url>
cd <your-repo-name>
تثبيت التبعيات:
pip install -r requirements.txt
وسائط سطر الأوامر:
--url <URL>: يحدد عنوان URL الهدف للمسح.--file <path>: يحدد مسار ملف أو دليل محلي للمسح.--deep: يمكّن المسح العميق لعناوين URL (الزحف المتكرر لملفات JavaScript المرتبطة).أمثلة:
مسح موقع ويب (مع المسح العميق):
python scan.py --url [https://www.example.com](https://www.example.com) --deep
مسح ملف JavaScript محلي:
python scan.py --file /path/to/your/file.js
مسح دليل محلي بشكل متكرر:
python scan.py --file /path/to/your/directory
مثال على تقرير:
════════════════════════════════════════════════════════════════════════════════════════════
تقرير مسح الثغرات
CVE-2020-11023
════════════════════════════════════════════════════════════════════════════════════════════
■ [ثغرة محتملة] إصدار jQuery
الموقع: [https://www.example.com/](https://www.example.com/)
السطر: N/A
الكود: التحديث إلى >=3.5.0
التفاصيل: jQuery 3.4.0 (قابل للاختراق)
■ [ثغرة محتملة] METHOD_APPEND
الموقع: [https://support.google.com/photos/thread/202686606/apakah-foto-atau-video-yg-dihapus-secara-permanen-tidak-akan-bisa-kembali-lagi?hl=id](https://support.google.com/photos/thread/202686606/apakah-foto-atau-video-yg-dihapus-secara-permanen-tidak-akan-bisa-kembali-lagi?hl=id)
السطر: 25
الكود: element.append(data);
التفاصيل: متغير غير آمن: data، مصدر مباشر: window.location
■ [معلومات] إصدار jQuery
الموقع: [https://support.google.com/photos/thread/202686606/apakah-foto-atau-video-yg-dihapus-secara-permanen-tidak-akan-bisa-kembali-lagi?hl=id](https://support.google.com/photos/thread/202686606/apakah-foto-atau-video-yg-dihapus-secara-permanen-tidak-akan-bisa-kembali-lagi?hl=id)
السطر: N/A
الكود: إصدار آمن
التفاصيل: jQuery 3.6.0 (آمن)
🛡️ التوصيات
تحديث jQuery: إذا تم اكتشاف إصدار jQuery ضعيف، قم بالتحديث فورًا إلى أحدث إصدار (>= 3.5.0).
تعقيم الإدخال: قم بتعقيم أي بيانات يقدمها المستخدم أو بيانات غير موثوقة بشكل كامل قبل استخدامها مع أساليب معالجة DOM التي يحتمل أن تكون خطيرة. فكر في استخدام مكتبات مثل DOMPurify.
استخدام .text() بحكمة: إذا كنت تحتاج فقط إلى إدراج محتوى نصي، استخدم الأسلوب .text() بدلاً من .html() أو أساليب أخرى قد تفسر الإدخال على أنه HTML.
المراجعة اليدوية: قم دائمًا بمراجعة نتائج هذا البرنامج النصي يدويًا لتحديد المخاطر الفعلية واستبعاد النتائج الإيجابية الخاطئة.
🙌 المساهمة
لنجعل العالم الرقمي أكثر أمانًا معًا! مساهماتكم مرحب بها للغاية! لا تتردد في تقديم طلبات السحب (pull requests) أو فتح مشكلات (issues) لتحسين أداء وإمكانيات هذا البرنامج النصي.
📄 الترخيص
هذا المشروع مرخص بموجب ترخيص MIT.