
مختبرات ثغرات الويب الذرية. ثغرة OWASP واحدة لكل تطبيق — Flask + Docker بأدنى حد، معطّلة عمدًا للدراسة العملية باستخدام Burp Suite.
⚠️ معرّض للثغرات بشكل متعمد. شغّله محليًا فقط. لا تعرّضه أبدًا للإنترنت أو لشبكة مشتركة.
اقرأ هذا بلغات أخرى: Português (Brasil)
إنجاز — الإصدار v1.0: يغطي atomicvulns الآن جميع فئات OWASP Top 10 2021 العشر (A01–A10)، عبر 38 ذرّة. راجع إصدار v1.0.
atomicvulns هو مجموعة من تطبيقات الويب الذرّية — كل واحد منها صغير، معزول، ويركّز على من OWASP Top 10. تأتي كل ذرّة مع التطبيق المعرّض للثغرة، والنسخة المُصلَّحة، وفرق مُعلَّق بين الاثنين، وشرح عملي لاستغلال الثغرة.
هذا ليس مجرد DVWA أو Juice Shop آخر. التطبيقات المعرّضة للثغرات المتجانسة موجودة بالفعل. ما يميّز atomicvulns هو الذرّية الجذرية: تطبيق واحد لكل خلل، سريع القراءة، سريع الاستكشاف. تربط سبب الكود ← الطلب/الاستجابة ← الاستغلال دون الحاجة إلى فهم تطبيق كامل أولًا.
جميع فئات OWASP Top 10 2021 العشر مغطاة — 38 ذرّة إجمالًا:
| الفئة | الذرّات |
|---|---|
| A01 — التحكم المعطوب في الوصول | idor-numeric-id, path-traversal-basic, idor-uuid-guessable, bola-rest, csrf-basic, open-redirect, mass-assignment |
| A02 — إخفاقات التشفير | jwt-none-alg, jwt-weak-secret, jwt-key-confusion, crypto-weak-hash, crypto-ecb-mode |
| A03 — الحقن | sqli-union-basic, xss-reflected, sqli-blind-boolean, sqli-blind-time, xss-stored, command-injection-basic, ssti-jinja, xss-dom, nosql-injection-mongo, ldap-injection, sqli-second-order |
| A04 — التصميم غير الآمن | race-condition-basic |
| A05 — سوء الإعداد الأمني | xxe-basic, xxe-blind-oob, debug-enabled, cors-wildcard |
| A06 — المكوّنات المعرّضة للثغرات وقديمة الطراز | cve-demo |
| A07 — إخفاقات التعريف والمصادقة | session-fixation, weak-password-reset |
| A08 — إخفاقات سلامة البرمجيات والبيانات | deserialization-pickle, prototype-pollution, deserialization-node |
| A09 — إخفاقات التسجيل والمراقبة الأمنية | logging-failures-demo |
| A10 — تزوير الطلبات من جانب الخادم (SSRF) | ssrf-basic, ssrf-blind-oob, ssrf-cloud-metadata |
طلاب اختبار الاختراق ومتعلّمو AppSec الذين يعرفون بالفعل أساسيات HTTP والطرفية، ويستخدمون (أو يتعلمون استخدام) Burp Suite، ويريدون مختبرًا مركّزًا يكون فيه كل تمرين قصيرًا بما يكفي لإنهائه في جلسة واحدة. المادة مكتوبة لشخص سيطبّق هذا في مسيرة مهنية في اختبار الاختراق — Burp هي الأداة الأساسية، وواجهة المستخدم مجرد سياق.
تعيش كل ذرّة في مجلدها الخاص تحت atoms/A0X-<category>/<atom-id>/ وتأتي مع docker-compose.yml. سكربت غلاف جذري، ./atom، يديرها:
./atom list # show all available atoms
./atom up <atom-id> # start the vulnerable + fixed pair
./atom down <atom-id> # stop and remove containers
./atom doctor # sanity-check your local setup
على سبيل المثال، لتشغيل الذرّة الأولى:
./atom up sqli-union-basic
# vulnerable → http://127.0.0.1:8001
# fixed → http://127.0.0.1:8101
ترتبط كل ذرّة بـ 127.0.0.1 فقط. لا تغيّر ذلك أبدًا — هذه التطبيقات معطوبة بشكل متعمد.
صادر تحت MIT License. إذا قمت بعمل fork لهذا المستودع لمادة تعليمية، فإن الإسناد مطلوب.