A fully simulated, client-side training sandbox for learning common web vulnerability classes — built for bug bounty hunters, security students, and CTF players.
Exploit-Lab is a browser-based training ground for practicing how common web vulnerabilities look and behave — without ever touching a real server, database, or third party. Every "request" you send is intercepted and evaluated entirely in JavaScript, running locally in your browser. There is no backend, no network calls to any target, and no real exploitation happening at any point.
It's built for people preparing for bug bounty programs (e.g. on platforms like bugbounty.sa or Intigriti) or studying for security certifications, who want a safe, repeatable space to build intuition for how these vulnerability classes are triggered and detected.
- 8 hands-on vulnerability challenges, each modeled after a real-world vulnerability class with its own scenario, hint, and mock request/response cycle.
- Sequential unlock system — solve a challenge to earn an unlock key and reveal the next one. Challenges 2–8 stay blurred/locked until you've earned your way there.
- Fully simulated request/response engine — edit a raw HTTP request in-browser and see how a (fake) vulnerable server would respond, based on pattern-matching your payload. No real HTTP requests ever leave the page.
- Bilingual interface — full English and Arabic (RTL) support, switchable at any time.
- Terminal-style live typing effects — boot sequence, titles, hints, and server responses all render with a "being typed right now" animation for an immersive hacker-terminal feel.
- Zero dependencies, zero backend — a single static site (HTML/CSS/JS). No build step, no server required.
| # | Challenge | Category | Reference |
|---|---|---|---|
| 1 | SQLi | SQL Injection | CWE-89 |
| 2 | XSS | Cross-Site Scripting | CWE-79 |
| 3 | IDOR | Insecure Direct Object Reference | CWE-639 |
| 4 | CmdI | OS Command Injection | CWE-78 |
| 5 | LFI | Local File Inclusion / Path Traversal | CWE-22 |
| 6 | SSRF | Server-Side Request Forgery | CWE-918 |
| 7 | SSTI | Server-Side Template Injection | CWE-1336 |
| 8 | XXE | XML External Entity Injection | CWE-611 |
- Vanilla HTML, CSS, and JavaScript — no frameworks, no build pipeline, no external runtime dependencies.
- Google Fonts (JetBrains Mono, Tajawal) loaded via CDN for styling only.
This project is provided strictly for educational and training purposes.
- Nothing in this application is real. Every "server," "database," "user record," and "vulnerability" you interact with is a hard-coded simulation running entirely in your browser via JavaScript pattern-matching. No real network requests are made to any backend, and no real system, account, or data is ever accessed, modified, or exposed.
- This tool is intended to help learners recognize and understand vulnerability patterns (SQL injection, XSS, IDOR, command injection, path traversal, SSRF, SSTI, XXE) in a safe, contained environment — not to serve as an attack toolkit against real, live systems.
- Testing any of these techniques against systems, applications, or infrastructure you do not own or do not have explicit, written authorization to test is illegal in most jurisdictions and a violation of the terms of service of virtually every online platform. This includes production websites, APIs, and any third-party infrastructure — regardless of what you learned here.
- If you intend to apply these skills professionally (e.g. bug bounty hunting, penetration testing), always operate strictly within the scope and rules of an authorized program (such as those listed on platforms like bugbounty.sa or Intigriti), and obtain explicit permission before testing any system.
- The author(s) and contributors of this project accept no responsibility or liability for any misuse of the knowledge, techniques, or concepts demonstrated in this simulation. Use of this project, and any real-world application of what is learned from it, is entirely at the user's own risk and responsibility. By using this project, you acknowledge that it is a closed, offline simulation for learning purposes only, and that you are solely responsible for how you apply anything you learn from it.
هذا المشروع مقدَّم لأغراض تعليمية وتدريبية بحتة فقط.
- لا يوجد أي شيء حقيقي في هذا التطبيق. كل "خادم" أو "قاعدة بيانات" أو "بيانات مستخدم" أو "ثغرة" تتفاعل معها هي محاكاة مبرمجة بالكامل تعمل داخل متصفحك عبر جافاسكريبت، ولا يتم إرسال أي طلبات شبكة حقيقية لأي خادم، ولا يتم الوصول لأي نظام أو حساب أو بيانات حقيقية بأي شكل.
- الهدف من هذه الأداة مساعدة المتعلمين على فهم والتعرف على أنماط الثغرات الشائعة (حقن SQL، XSS، IDOR، حقن الأوامر، اجتياز المسارات، SSRF، SSTI، XXE) في بيئة آمنة ومعزولة تمامًا — وليس استخدامها كأداة هجوم ضد أنظمة حقيقية فعلية.
- اختبار أي من هذه التقنيات على أنظمة أو تطبيقات أو بنية تحتية لا تملكها أو لا تملك تصريحًا صريحًا ومكتوبًا لاختبارها يُعد مخالفًا للأنظمة القانونية في أغلب الدول، ومخالفًا لشروط استخدام جميع المنصات تقريبًا. ينطبق هذا على المواقع الحقيقية، الواجهات البرمجية (APIs)، وأي بنية تحتية تابعة لجهة أخرى — بغض النظر عمّا تعلمته هنا.
- إذا كنت تنوي تطبيق هذه المهارات بشكل احترافي (مثل صيد الثغرات أو اختبار الاختراق)، احرص دائمًا على العمل ضمن نطاق وقواعد برنامج مصرّح به رسميًا (مثل البرامج المدرجة على منصات مثل bugbounty.sa أو Intigriti)، واحصل على إذن صريح قبل اختبار أي نظام.
- لا يتحمّل صاحب/مطورو هذا المشروع أي مسؤولية أو التزام قانوني عن أي إساءة استخدام للمعرفة أو التقنيات أو المفاهيم الموضحة في هذه المحاكاة. استخدام هذا المشروع، وأي تطبيق فعلي لما يتم تعلمه منه، هو على مسؤولية المستخدم وحده بالكامل. باستخدامك لهذا المشروع، فإنك تقر بأنه محاكاة مغلقة وغير متصلة بأي نظام حقيقي، مخصصة للتعلم فقط، وأنك المسؤول الوحيد عن كيفية تطبيقك لأي شيء تتعلمه منه.