OWASP VulnerableApp OWASP VulnerableApp

OWASP Incubator License Java CI with Gradle PRs Welcome Docker Pulls codecov

आज के दौर में वेब एप्लिकेशन तेज़ी से लोकप्रिय हो रहे हैं, जिसके साथ-साथ उन्हें सुरक्षित करने की आवश्यकता भी उतनी ही बढ़ रही है। हालाँकि कई वल्नरेबिलिटी स्कैनिंग टूल उपलब्ध हैं, लेकिन इन्हें विकसित करते समय डेवलपर्स को इनका परीक्षण करना पड़ता है और यह भी जानना पड़ता है कि ये टूल कितने प्रभावी हैं। इस समय ऐसे बहुत कम जानबूझकर कमज़ोर एप्लिकेशन उपलब्ध हैं जिन पर इन टूल का परीक्षण किया जा सके। बाज़ार में कुछ ऐसे एप्लिकेशन ज़रूर हैं, लेकिन वे इस उद्देश्य को ध्यान में रखकर नहीं बनाए गए थे और इसलिए उनमें विस्तारित करने की सुविधा का अभाव है।

VulnerableApp इन सभी समस्याओं को ध्यान में रखकर बनाया गया है। यह प्रोजेक्ट स्केलेबल, एक्स्टेंसिबल, इंटीग्रेट करने में आसान और सीखने में सरल है।

यूज़र इंटरफ़ेस

VulnerableApp-facade UI

उपयोग की गई प्रौद्योगिकियाँ

  • Java 17
  • Spring Boot
  • ReactJS
  • Javascript/TypeScript

वर्तमान में समर्थित वल्नरेबिलिटी प्रकार

  1. JWT वल्नरेबिलिटी
  2. कमांड इंजेक्शन
  3. क्रिप्टोग्राफ़ी विफलताएँ
  4. फ़ाइल अपलोड वल्नरेबिलिटी
  5. पाथ ट्रैवर्सल वल्नरेबिलिटी
  6. SQL इंजेक्शन
    1. एरर-बेस्ड SQL इंजेक्शन
    2. यूनियन-बेस्ड SQL इंजेक्शन
    3. ब्लाइंड SQL इंजेक्शन
  7. XSS
    1. परसिस्टेंट XSS
    2. रिफ्लेक्टेड XSS
  8. XXE
  9. ओपन रिडायरेक्ट
    1. HTTP 3xx स्टेटस कोड आधारित
  10. SSRF
  11. IDOR

प्रोजेक्ट में योगदान

आप निम्नलिखित तरीकों से प्रोजेक्ट में योगदान कर सकते हैं:

  1. यदि आप एक डेवलपर हैं और प्रोजेक्ट से अभी शुरुआत कर रहे हैं, तो इश्यूज़ की सूची देखें जिनमें good first issue टैग है।
  2. यदि आप नया वल्नरेबिलिटी प्रकार जोड़ना चाहते हैं, तो ./gradlew GenerateSampleVulnerability कमांड चलाएँ। यह एक सैंपल टेम्पलेट बनाएगा — उन फ़ाइलों को खोलें, प्लेसहोल्डर भरें और प्रोजेक्ट बिल्ड करें।
  3. यदि आप प्रोजेक्ट का प्रचार-प्रसार करके योगदान देना चाहते हैं, तो डिस्कशन सेक्शन या इश्यूज़ में अपने विचार साझा करें।

प्रोजेक्ट चलाना

प्रोजेक्ट चलाने के दो तरीके हैं:

  1. Docker कंटेनर का उपयोग करना (सभी घटकों सहित पूरा VulnerableApp):
    1. Docker Compose डाउनलोड और इंस्टॉल करें
    2. इस GitHub रिपॉज़िटरी को क्लोन करें
    3. टर्मिनल खोलें और प्रोजेक्ट के रूट डायरेक्टरी पर जाएँ
    4. कमांड docker-compose pull && docker-compose up चलाएँ
    5. ब्राउज़र में http://localhost पर जाएँ।

    नोट: नवीनतम रिलीज़्ड संस्करण के लिए Docker latest टैग का उपयोग करें।

  2. स्टैंडअलोन एप्लिकेशन के रूप में:
    1. GitHub के रिलीज़ सेक्शन से नवीनतम JAR फ़ाइल डाउनलोड करें
    2. कमांड java -jar VulnerableApp-* चलाएँ
    3. ब्राउज़र में http://localhost:9090/VulnerableApp पर जाएँ।

प्रोजेक्ट बिल्ड करना

  1. Docker एप्लिकेशन के रूप में:
    1. ./gradlew jibDockerBuild से Docker इमेज बनाएँ
    2. Docker-Compose डाउनलोड करें और docker-compose up चलाएँ
    3. ब्राउज़र में http://localhost पर जाएँ।
  2. SpringBoot एप्लिकेशन के रूप में (डीबगिंग के लिए):
    1. प्रोजेक्ट को अपनी IDE में इम्पोर्ट करें और चलाएँ
    2. ब्राउज़र में http://localhost:9090/VulnerableApp पर जाएँ।

एम्बेडेड H2 डेटाबेस से कनेक्ट करना

ब्राउज़र से डेटाबेस एक्सेस करने के लिए: http://localhost:9090/VulnerableApp/h2

JDBC Url: jdbc:h2:mem:testdb
User Name: admin
Password: hacker

संपर्क करें

किसी भी समस्या के लिए karan.sasan@owasp.org पर ईमेल करें या एक इश्यू उठाएँ।

दस्तावेज़ और संदर्भ

  1. दस्तावेज़ीकरण
  2. डिज़ाइन दस्तावेज़ीकरण
  3. OWASP VulnerableApp
  4. OWASP Spotlight श्रृंखला का अवलोकन वीडियो
  5. अवलोकन वीडियो

ब्लॉग

  1. OWASP-VulnerableApp का अवलोकन — Medium लेख
  2. OWASP-VulnerableApp का अवलोकन — Blogspot पोस्ट
  3. Kenji Nakajima द्वारा OWASP VulnerableApp का परिचय
  4. जेनरेटिव AI आधारित प्लेटफ़ॉर्म Shannon

समस्या निवारण संदर्भ

  1. Reddit: SQL इंजेक्शन वल्नरेबिलिटी का उपयोग

अन्य भाषाओं में README

  1. रूसी
  2. चीनी
  3. पंजाबी