
जावा भेद्यता प्रयोगशाला जिसमें भेद्य और ठीक किया गया कोड, आक्रमण परिदृश्य, स्रोत/सिंक ऑडिट नोट्स, और सुरक्षा प्रशिक्षण एवं टूल मूल्यांकन के लिए सुरक्षित कोडिंग मार्गदर्शन शामिल है।
JavaSecLab - एक व्यापक Java भेद्यता लैबJavaSecLab एप्लिकेशन सुरक्षा सीखने, कोड ऑडिट अभ्यास, सुरक्षित विकास प्रशिक्षण और सुरक्षा उपकरण मूल्यांकन के लिए एक व्यापक Java भेद्यता लैब है। Spring Boot पर आधारित, यह भेद्य कोड, ठीक किए गए कार्यान्वयन, वास्तविक हमले परिदृश्य, ऑडिट-उन्मुख source और sink नोट्स, उपचार मार्गदर्शन, सुरक्षित कोडिंग स्पष्टीकरण और ट्रैफ़िक-विश्लेषण उदाहरण प्रदान करता है।
लक्ष्य व्यावहारिक है: उपयोगकर्ताओं को न केवल यह समझने में मदद करना कि किसी भेद्यता का शोषण कैसे किया जाता है, बल्कि यह भी कि यह कोड में क्यों मौजूद है और इसे कैसे ठीक किया जाना चाहिए।


JavaSecLab Java वेब सुरक्षा परिदृश्यों की एक विस्तृत श्रृंखला को कवर करता है, जिनमें शामिल हैं:
डेमो साइट: http://whgojp.top/
डिफ़ॉल्ट खाता: admin/admin
JavaSecLab जानबूझकर भेद्य है और इसमें खतरनाक endpoints, भेद्य निर्भरताएँ और असुरक्षित कॉन्फ़िगरेशन शामिल हैं। अपनी स्वयं की तैनाती केवल एक पृथक वातावरण में चलाएँ। इसे सीधे सार्वजनिक इंटरनेट पर उजागर न करें।
लेखक ने उद्यम सुरक्षा भूमिकाओं में काम किया है और पूर्ण भेद्यता जीवनचक्र का अनुभव किया है। पेनिट्रेशन टेस्ट या सुरक्षा आकलन के बाद, भेद्यताएँ अक्सर TAPD या Jira जैसी प्रणालियों के माध्यम से विकास टीमों को सौंपी जाती हैं। व्यवहार में, दो प्रश्न बार-बार उठते हैं:
JavaSecLab को भेद्यता व्यवहार, भेद्य कोड, उपचार दृष्टिकोण और ऑडिट सोच को जोड़ने के लिए बनाया गया था। केवल टेक्स्ट-आधारित रिपोर्ट या PoC की तुलना में, यह प्रोजेक्ट कोड परिप्रेक्ष्य से भेद्यताओं को समझने पर जोर देता है।
कोड ऑडिटिंग में, एक सामान्य कार्यप्रवाह पहले एक sink का पता लगाना है, जैसे command execution, SQL execution, file access, template rendering, deserialization, या response output। इसके बाद ऑडिटर संबंधित source की पहचान करने के लिए पीछे की ओर ट्रेस करता है, जैसे request parameters, headers, cookies, uploaded files, serialized data, या database content। JavaSecLab के कई परिदृश्य इस source-to-sink पथ के आसपास डिज़ाइन किए गए हैं, जो उन्हें सीखने और उपकरण सत्यापन दोनों के लिए उपयोगी बनाते हैं।
वास्तविक प्रणालियों में एक ही भेद्यता प्रकार अक्सर कई ट्रिगर पथों के माध्यम से प्रकट होता है। इसलिए JavaSecLab जहाँ संभव हो मुख्य भेद्यता वर्गों के लिए कई परिदृश्य प्रदान करता है, ताकि उपयोगकर्ता तुलना कर सकें कि विभिन्न कोडिंग पैटर्न, फ्रेमवर्क सुविधाएँ और व्यावसायिक प्रवाह जोखिम को कैसे प्रभावित करते हैं।
JavaSecLab में भेद्यता ट्रैफ़िक-विश्लेषण उदाहरण शामिल हैं जो शिक्षार्थियों को request/response व्यवहार को कोड निष्पादन से जोड़ने में मदद करते हैं। स्पष्ट पैकेट, बेहतर प्रजनन नोट्स, या अतिरिक्त विश्लेषण उदाहरणों के साथ योगदान का स्वागत है।

उदाहरण के लिए, time-based SQL injection परिदृश्य में, ट्रैफ़िक पैटर्न को प्रतिक्रिया विलंबता के माध्यम से देखा जा सकता है: सर्वर लगभग पाँच सेकंड के बाद प्रतिक्रिया देता है।

रिपॉजिटरी क्लोन करें:
git clone https://github.com/whgojp/JavaSecLab.git
cd JavaSecLab

आवश्यकताएँ:
डेटाबेस बनाएँ और sql/JavaSecLab.sql आयात करें।
src/main/resources/application.yml में सक्रिय प्रोफ़ाइल को dev पर सेट करें:
spring:
profiles:
active: dev
src/main/resources/application-dev.yml में डेटाबेस कनेक्शन अपडेट करें:
username: root
password: QWE123qwe
url: jdbc:mysql://localhost:13306/JavaSecLab?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&allowMultiQueries=true
IDEA से या Maven के साथ एप्लिकेशन प्रारंभ करें।
डिफ़ॉल्ट खाता: admin/admin

आवश्यकताएँ:
विकल्प 1: प्रकाशित इमेज के साथ प्रारंभ करें:
docker compose -f docker-compose.image.yml up -d
विकल्प 2: इमेज को स्थानीय रूप से बनाएँ और लैब प्रारंभ करें:
mvn clean package -DskipTests
docker compose -p javaseclab up -d
यदि प्रारंभ के बाद डेटाबेस खाली है, तो मैन्युअल रूप से sql/JavaSecLab.sql आयात करें।


अधिक तैनाती विकल्पों और समस्या निवारण नोट्स के लिए, Deployment Guide देखें।
JavaSecLab एक भेद्य लैब प्रोजेक्ट है। यह प्रजनन और शिक्षण के लिए जानबूझकर खतरनाक endpoints, भेद्य निर्भरताएँ और असुरक्षित कॉन्फ़िगरेशन बनाए रखता है। इसे केवल स्थानीय रूप से या एक पृथक नेटवर्क में चलाएँ।
अनुशंसित सावधानियाँ:
इस प्रोजेक्ट में सुरक्षित कोड उदाहरण शिक्षण और प्रदर्शन के लिए हैं। वास्तविक व्यावसायिक प्रणालियों में आमतौर पर प्रमाणीकरण, ऑडिटिंग, दर सीमित करना, डेटा सत्यापन, निर्भरता शासन, निगरानी, अलर्टिंग और गहराई में रक्षा की आवश्यकता होती है।
Issues और pull requests का स्वागत है। अच्छे योगदान में शामिल हैं:
जब हम मुक्त सॉफ़्टवेयर की बात करते हैं, तो हम स्वतंत्रता की बात कर रहे होते हैं, कीमत की नहीं।
JavaSecLab Apache License 2.0 के अंतर्गत जारी किया गया है। विवरण के लिए LICENSE देखें।
रिलीज़ नोट्स और प्रोजेक्ट इतिहास के लिए Update Log देखें।
लेखक का ब्लॉग: 今天是几号
यदि आप एप्लिकेशन सुरक्षा, सुरक्षित विकास, SDL, DevSecOps, या भेद्यता लैब में रुचि रखते हैं, तो समुदाय समूह में शामिल होने के लिए स्वतंत्र महसूस करें।
यदि JavaSecLab आपकी सहायता करता है, तो प्रायोजन की सराहना की जाती है। समर्थन का उपयोग ऑनलाइन वातावरण बनाए रखने और प्रोजेक्ट को लगातार बेहतर बनाने के लिए किया जाएगा।