الأسبوع 7 — ثغرات الويب (OWASP Top 10)
الأهداف التعليمية
- فهم منطق كل فئة من فئات الـ Top 10، لا حفظها.
- استخدام Burp Suite في الاعتراض وفي repeater بفعالية.
- كتابة دليل استغلال واضح: طلب، استجابة، أثر.
فئات 2021 في جملة واحدة لكل منها
| الفئة | الفكرة المحورية |
|---|---|
| A01 – كسر ضوابط الوصول | يسمح التطبيق بما يجب أن يمنعه. |
| A02 – إخفاقات التشفير | بيانات حساسة مشفَّرة بشكل سيّئ أو بنص صريح. |
| A03 – الحقن | بيانات مستخدم تُنفَّذ كأنها شيفرة (SQL، LDAP، نظام التشغيل). |
| A04 – تصميم غير آمن | عيب في التصميم، لا في الشيفرة. |
| A05 – إعداد خاطئ | قيم افتراضية، إسهاب في الرسائل، ترويسات مفقودة. |
| A06 – مكوّنات ضعيفة | تبعيات غير محدَّثة. |
| A07 – التعريف / المصادقة | جلسات ضعيفة، كلمات مرور ضعيفة، غياب MFA. |
| A08 – سلامة البرمجيات | سلسلة توريد مخترَقة. |
| A09 – تسجيل غير كافٍ | لا شيء يُرى وهو يمر. |
| A10 – SSRF | يُقاد الخادم نحو الداخل. |
Burp Suite عمليًا
- اضبط Firefox لاستخدام Burp كوكيل (proxy) (
127.0.0.1:8080)، وثبِّت شهادة Burp. - Proxy → Intercept : التقط طلبًا مثيرًا للاهتمام (إرسال نموذج، استدعاء API).
- Repeater : أرسل الطلب وأعد تشغيله، مع تغيير معامل واحد في كل مرة.
- Intruder : حمولات معلمنة. نقطة إدراج واحدة في كل مرة للبقاء واضحًا.
مثالان يجب إتقانهما
حقن SQL — التحقق الحقيقي
لا تكتفِ بـ ' OR 1=1 -- الذي «يعرض أسطرًا أكثر». أكِّد عبر استخراج
مضبوط:
GET /produits?id=42 UNION SELECT null, current_database(), null --
يجب أن تحتوي الاستجابة على اسم قاعدة بيانات منطقي. بلا هذا الدليل، إنها مجرد فرضية.
XSS مخزَّنة — أثر ملموس
يُثبت <script>alert(1)</script> التخزين، لا الأثر. العرض المتوقَّع في
التقرير: سرقة جلسة نحو نقطة نهاية يتحكم بها المهاجم، أو فعل مفروض قسرًا عبر
fetch('/api/user/delete', {method:'POST', credentials:'include'}).
بداية TP2
تختار تطبيقًا واحدًا ضعيفًا من المختبر (Juice Shop، DVWA أو ما يعادلهما). التسليم للأسبوع 9:
- ثلاث ثغرات من الـ Top 10 مُستغَلة، كل واحدة مع طلب، استجابة، أثر.
- علاج ملموس لكل ثغرة.