CVE-2025-55182 (React2Shell) का विश्लेषण करने के लिए शैक्षणिक प्रयोगशाला, जिसमें कमजोर और पैच किए गए React Server Components वातावरण, एक्सप्लॉइट शेल, स्वचालित मूल्यांकन परिदृश्य और व्यापक सुरक्षा रिपोर्ट शामिल हैं।
यह रिपॉजिटरी एक नियंत्रित React Server Components वातावरण में CVE-2025-55182 के विश्लेषण के लिए एक स्थानीय शैक्षणिक प्रयोगशाला है। यह प्रयोगशाला भेद्यता, उसके शोषण और लागू किए गए पैच का अनुकरण करती है।
app/vulnerable/: भेद्य React अनुप्रयोग प्रोफ़ाइल।
src/framework/entry.rsc.tsx: वह असुरक्षित डिसीरियलाइज़ेशन बिंदु जहाँ __flight_action पेलोड को execSync() के माध्यम से निष्पादित किया जाता है।[email protected] के व्यवहार का अनुकरण करता है।app/patched/: पैच किया गया React अनुप्रयोग प्रोफ़ाइल।
src/framework/entry.rsc.tsx: वह शमन तर्क जो डिसीरियलाइज़ेशन से पहले __flight_action पेलोड को 403 प्रतिक्रिया के साथ अवरुद्ध करता है।infra/: पृथक निष्पादन के लिए Docker कॉन्फ़िगरेशन।
docker-compose.yml: भेद्य (पोर्ट 3100) और पैच किए गए (पोर्ट 3200) दोनों प्रोफ़ाइलों को स्पिन करता है।scripts/: ऑटोमेशन और शोषण स्क्रिप्ट।
exploit-shell.ps1: एक इंटरैक्टिव शोषण शेल जो भेद्यता का लाभ उठाकर एक अनुकरणीय रिमोट टर्मिनल (root@container$) प्रदान करता है।run-scenarios.ps1: tests/run-scenarios.mjs में स्वचालित मूल्यांकन परीक्षणों को निष्पादित करने के लिए रैपर स्क्रिप्ट।start-lab.ps1: Docker Compose वातावरण को जल्दी से शुरू करने के लिए सहायक स्क्रिप्ट।stop-lab.ps1: Docker Compose वातावरण को बंद करने और साफ करने के लिए सहायक स्क्रिप्ट।demo-lab.ps1: वैकल्पिक डेमो स्क्रिप्ट जो दोनों ऐप्स को स्थानीय रूप से (Docker के बिना) चलाती है और अनुरोधों का एक क्रम भेजती है।report/: अंतिम विश्लेषण शामिल है।
findings.md: व्यापक सुरक्षा रिपोर्ट जो आक्रमण श्रृंखला, CVSS विश्लेषण, मूल्यांकन मीट्रिक्स और शमन सिफारिशों को कवर करती है।CSE472_ProjectProposal_Revised.md: संशोधित परियोजना प्रस्ताव और पद्धति दस्तावेज़ीकरण।tests/: स्वचालित मूल्यांकन।
run-scenarios.mjs: Node.js स्क्रिप्ट जो दोनों प्रोफ़ाइलों के विरुद्ध सामान्य, संदिग्ध और शोषण परिदृश्य चलाती है, सफलता और पहचान दरों की गणना करती है।logs/: टेलीमेट्री आउटपुट।
vulnerable-requests.log और patched-requests.log: विस्तृत अनुरोध निशान संग्रहीत करते हैं, जिसमें विश्लेषण के लिए suspiciousReasons शामिल है।यदि आपने इस प्रोजेक्ट को GitHub से .zip फ़ाइल के रूप में डाउनलोड किया है, तो अपनी स्थानीय मशीन पर प्रयोगशाला चलाने और भेद्यता अनुकरण के साथ इंटरैक्ट करने के लिए इन चरणों का पालन करें।
PowerShell निष्पादन नीति पर नोट: यदि
.ps1फ़ाइलें चलाते समय आपको यह त्रुटि मिलती है कि स्क्रिप्टलोड नहीं की जा सकतीयाडिजिटल रूप से हस्ताक्षरित नहीं है, तो आपको अपने वर्तमान सत्र के लिए निष्पादन नीति को बायपास करना होगा। स्क्रिप्ट निष्पादित करने से पहले अपनी PowerShell विंडो में यह कमांड चलाएँ:Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass(चूँकि स्कोप "Process" है, आपको यह कमांड हर नई PowerShell विंडो या टैब में फिर से चलाना होगा!)
.zip फ़ाइल को अपनी इच्छित फ़ोल्डर में निकालें। एक PowerShell विंडो खोलें और निकाले गए प्रोजेक्ट फ़ोल्डर में नेविगेट करें:
cd path\to\extracted\folder
हम भेद्य एप्लिकेशन को सुरक्षित रूप से अलग करने के लिए Docker का उपयोग करते हैं। प्रदान की गई सहायक स्क्रिप्ट का उपयोग करके कंटेनर प्रारंभ करें:
.\scripts\start-lab.ps1
(वैकल्पिक रूप से, आप मैन्युअल रूप से cd infra; docker-compose up --build -d चला सकते हैं)
एक बार प्रारंभ होने पर:
http://localhost:3100 पर चलता हैhttp://localhost:3200 पर चलता हैवातावरण चलने के साथ, आप हमारे अनुकरणीय शोषण शेल को लॉन्च करके रिमोट कोड निष्पादन (RCE) भेद्यता का परीक्षण कर सकते हैं। एक नया PowerShell टैब/विंडो खोलें और चलाएँ:
.\scripts\exploit-shell.ps1
यह स्क्रिप्ट एक हमलावर के रूप में कार्य करती है जो .rsc एंडपॉइंट पर तैयार किए गए पेलोड भेजती है। निम्नलिखित कमांड चलाने का प्रयास करें:
whoamils /workspaceenvcat /etc/passwdपैच किए गए संस्करण का परीक्षण करने के लिए:
.\scripts\exploit-shell.ps1 -Target "http://localhost:3200"
आप देखेंगे कि पैच किया गया संस्करण अनुरोध को अवरुद्ध करता है और [BLOCKED] संदेश लौटाता है।
मूल्यांकन मीट्रिक्स (सफलता दर, पहचान दर) उत्पन्न करने के लिए, Node.js परीक्षण स्क्रिप्ट चलाएँ:
node .\tests\run-scenarios.mjs
(या रैपर का उपयोग करें: .\scripts\run-scenarios.ps1)
यह कंसोल पर एक सारांश आउटपुट करेगा और tests/results/scenario-report.json में एक विस्तृत JSON रिपोर्ट सहेजेगा।
जब आप प्रयोग करना समाप्त कर लें, तो संसाधनों को मुक्त करने के लिए कंटेनरों को सुरक्षित रूप से बंद करें:
.\scripts\stop-lab.ps1