- بواسطة x32x01 ||
لو بتشتغل على تطبيقات ASP.NET أو مهتم بأمن الويب، لازم تعرف أداة Blacklist3r 👨💻
الأداة دي مش "بتخترق" المواقع، لكنها بتكشف المفاتيح المسربة (MachineKey) اللي ممكن تخلي موقعك ضعيف أمام الهجمات.
1️⃣ توقيع بيانات المستخدم (Cookies)
1️⃣ بناء قاعدة بيانات
[INFO] The site is using a known, publicly exposed key.
الأداة دي مش "بتخترق" المواقع، لكنها بتكشف المفاتيح المسربة (MachineKey) اللي ممكن تخلي موقعك ضعيف أمام الهجمات.
🔐 إيه هو MachineKey وليه مهم جدًا؟
في تطبيقات ASP.NET، الـ MachineKey زي بصمة الأمان السرية للتطبيق. وظيفته الأساسية:1️⃣ توقيع بيانات المستخدم (Cookies)
- لما المستخدم يسجل دخول، السيرفر بيعمل كوكي عليه بيانات هويته
- الـ MachineKey بيوقّع الكوكي دا رقميًا
- لما المستخدم يرجع، السيرفر بيتأكد من صحة التوقيع
- يحفظ حالة العناصر بين Postbacks
- يمنع أي شخص يعدل البيانات المرسلة من المتصفح للسيرفر
- ممكن يزور ملفات الكوكي ويدخل على حسابات أي مستخدم، حتى Admin
- يقدر يعدل ViewState ويغير البيانات عشان ينفذ هجمات ⚠️
🔍 إزاي Blacklist3r بتشتغل؟
الأداة عبارة عن منظار أمني للمطورين والمختبرين، وبتشتغل كالتالي:1️⃣ بناء قاعدة بيانات
- فيها Blacklist من مفاتيح MachineKey اللي اتسربت على GitHub أو مشاريع قديمة
- تزور الموقع وترسل كوكي أو ViewState موقعة بكل مفتاح من القائمة
- لو السيرفر رفض كل الطلبات → الموقع آمن ✅
- لو السيرفر قبل طلب → المفتاح المستخدم معروف ومنشور، والخطر موجود ⚠️
🔓 مثال عملي لثغرة MachineKey
- الخطأ: مطور وضع مفاتيح عامة في web.config (زي A1234567890...)
- الكشف: Blacklist3r بتفحص التطبيق
- النتيجة: تظهر رسالة تحذير:
[INFO] The site is using a known, publicly exposed key.
- الخطر: المهاجم يقدر يزيف ViewState أو ملفات المصادقة
- الحل: توليد مفتاح جديد وفريد لكل تطبيق 🔑
🛡 الإجراءات الوقائية
1️⃣ تغيير MachineKey فورًا- امسح قسم الـ machineKey من
web.configلإنشاء مفتاح عشوائي - أو استخدم أداة لتوليد مفتاح جديد وقوي
enableViewStateMac="true"→ حماية ViewStaterequestValidationMode="2.0"→ التحقق من صحة المدخلات
- منع رفع ملفات زي
web.configعلى GitHub (.gitignore)
- زي Azure Key Vault أو متغيرات بيئة النظام لتخزين المفاتيح
✅ استخدام Blacklist3r الصح
الأداة مش سلاح، دي منظار أمني:- 👨💻 للمختبرين: كشف الثغرات وإبلاغ أصحاب المواقع
- 🛠 لمسؤولي الأنظمة: فحص دوري للتأكد من مفاتيح غير مسربة
- 👩💻 للمطورين: تنبيه لخطر نشر المفاتيح في الشفرة