
مختبرات ثغرات الويب الذرية. ثغرة OWASP واحدة لكل تطبيق — Flask + Docker بأدنى حد، معطّلة عمدًا للدراسة العملية باستخدام Burp Suite.
⚠️ قابل للاستغلال عن قصد. شغّله محليًا فقط. لا تعرّضه أبدًا للإنترنت أو لشبكة مشتركة.
اقرأ هذا بلغات أخرى: Português (Brasil)
محطة بارزة — v1.0: تغطي سلسلة الويب الآن جميع فئات OWASP Top 10 2021 العشر (A01–A10)، عبر 38 ذرة. راجع إصدار v1.0.
atomicvulns هو مجموعة من تطبيقات الويب الذرّية — كل واحد منها صغير ومعزول ويركّز على ثغرة واحدة من OWASP Top 10. تأتي كل ذرة مع التطبيق القابل للاستغلال، والنسخة المُصلحة، وفرق مُعلّق بينهما، ودليل عملي لاستغلال الثغرة.
هذا ليس نسخة أخرى من DVWA أو Juice Shop. فالتطبيقات القابلة للاستغلال المتجانسة موجودة بالفعل. ما يميّز atomicvulns هو الذرّية الجذرية: تطبيق واحد لكل عيب، سريع القراءة، سريع الاستكشاف. تربط سبب الكود ← الطلب/الاستجابة ← الاستغلال دون الحاجة إلى فهم تطبيق كامل أولًا.
تغطي سلسلة الويب (Python/Flask) جميع فئات 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 |
تستهدف سلسلة API (TypeScript/Express) قائمة OWASP API Security Top 10 2023. وقد نُشرت مرحلتها الأولى — التخويل: الكائنات والدوال —: خمس ذرات عبر فئتين، تغطي محوري التخويل على مستوى الكائن ومستوى الدالة. توجد الخطة الكاملة المرتّبة في ROADMAP.
| الفئة | الذرات |
|---|---|
| API1 — التخويل المعطوب على مستوى الكائن | bola-sequential-id, bola-uuid-leaked, bola-nested-resource |
| API5 — التخويل المعطوب على مستوى الدالة | bfla-admin-function, bfla-method-based |
طلاب اختبار الاختراق ومتعلّمو AppSec الذين يعرفون أساسيات HTTP والطرفية بالفعل، ويستخدمون (أو يتعلّمون استخدام) Burp Suite، ويريدون مختبرًا مركّزًا يكون فيه كل تمرين قصيرًا بما يكفي لإنجازه في جلسة واحدة. كُتبت المادة لشخص سيطبّق هذا في مسيرة مهنية في اختبار الاختراق — فـ Burp هو الأداة الأساسية، وواجهة المستخدم مجرد سياق.
تعيش كل ذرّة في مجلد خاص بها — atoms/web/A0X-<category>/<atom-id>/ لسلسلة الويب، وatoms/api/APIX-<category>/<atom-id>/ لسلسلة API — وتأتي مرفقة بملف 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 # web series
# vulnerable → http://127.0.0.1:8001
# fixed → http://127.0.0.1:8101
./atom up bola-sequential-id # API series
# vulnerable → http://127.0.0.1:8201
# fixed → http://127.0.0.1:8301
كل ذرة ترتبط بـ 127.0.0.1 فقط. لا تغيّر ذلك أبدًا — فهذه التطبيقات معطوبة عمدًا.
صادر بموجب ترخيص MIT. إذا قمت بعمل fork لهذا المستودع لأغراض تعليمية، فإن الإسناد مطلوب.