
CVE-2025-55182 (React2Shell) के स्थानीय परीक्षण के लिए जानबूझकर कमजोर Next.js RSC Docker लैब
अधिकृत सुरक्षा अनुसंधान के लिए स्थानीय Docker लैब: React Server Components / Next.js App Router जिसमें CVE-2025-55182 (React2Shell) प्रभावित रेंज का स्टैक है।
केवल अपनी मशीन पर उपयोग करें। इस कंटेनर को इंटरनेट पर एक्सपोज़ न करें।
| घटक | संस्करण | टिप्पणी |
|---|
| Next.js | 15.1.0 | पैच-पूर्व; npm ज्ञात समस्याओं के बारे में चेतावनी देता है |
| React / react-dom | 19.2.0 | इस CVE के लिए प्रभावित 19.x लाइन में |
| RSC पाइपलाइन | Next में बंडल | डिसीरियलाइज़ेशन Next के संकलित react-server-dom-* के माध्यम से किया जाता है |
यह ऐप एक न्यूनतम App Router पेज है जिसमें एक Server Action है ताकि Next-Action हेडर के साथ POST / एक वास्तविक लक्ष्य की तरह व्यवहार करे।
git clone https://github.com/l0lsec/cve-2025-55182-lab.git
cd cve-2025-55182-lab
# Build and run in the background
docker compose up --build -d
http://localhost:3000 खोलें — आपको “RSC lab (intentionally vulnerable)” और एक छोटा फॉर्म दिखना चाहिए।
curl -sS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3000/
# अपेक्षित: 200
docker compose logs -f
docker compose down
http://localhost:3000 पर सेट करें (या Burp के माध्यम से टनल करें)।Content-Type: multipart/form-data और अपने Flight-प्रोटोकॉल एक्सप्लॉइट बॉडी (मल्टीपार्ट फ़ील्ड्स 0, 1, 2 जैसे सार्वजनिक write-ups/आपके टेम्पलेट्स में) के साथ POST / भेजें।Next-Action हेडर
Next-Action मान कॉपी करें, याउदाहरण हेडर आकार:
Next-Action: <action-id-from-intercepted-request>
यदि कोई सामान्य प्लेसहोल्डर काम नहीं करता है, तो हमेशा एक वैध सबमिट के बाद Proxy इतिहास से लाइव आईडी को प्राथमिकता दें।
पेस्ट करने के लिए तैयार POST / मल्टीपार्ट टेम्पलेट्स burp-payloads/ में हैं (जैसे id, whoami, समय-आधारित sleep, OOB प्लेसहोल्डर्स)। फ़ाइल इंडेक्स के लिए burp-payloads/README.md देखें। भेजने से पहले OOB टेम्पलेट्स में YOUR-COLLABORATOR-HOST बदलें।
.
├── Dockerfile # मल्टी-स्टेज बिल्ड, Next स्टैंडअलोन, पोर्ट 3000
├── docker-compose.yml # होस्ट 3000 को कंटेनर 3000 से मैप करता है
├── burp-payloads/ # Burp Repeater के लिए रॉ *.http + इंडेक्स README
├── app/
│ ├── layout.tsx
│ └── page.tsx # Server Action + लैब UI
├── public/
├── package.json
├── package-lock.json
└── next.config.ts # आउटपुट: "standalone"
npm install
npm run dev
# http://localhost:3000
CVE पुनरुत्पादन के लिए, Docker इमेज को प्राथमिकता दें ताकि स्टैक पिन किए गए कमजोर निर्भरताओं से मेल खाए।
केवल शैक्षिक/लैब उपयोग। आप अपने संचालन क्षेत्र के कानूनों और नीतियों का पालन करने के लिए जिम्मेदार हैं। कोई वारंटी नहीं।