
हल्का-फुल्का Go टूलकिट और CVE-2025-55182 की खोज व ट्रायेज के लिए एक Dockerized Next.js लैब।
हल्का Go टूलकिट और एक Dockerized Next.js लैब, जो CVE-2025-55182 का अन्वेषण और ट्रायेज करने के लिए है। केवल शैक्षिक और अधिकृत परीक्षण के लिए।
React2Shell_Deconstructing_a_Perfect_10_RCE.pdf और अटैक-पाथ डायग्राम देखें
checker: तेज़, समवर्ती इन्वेंट्री स्कैन (एकल लक्ष्य, फ़ाइल, या stdin), RSC एक्सपोज़र के लिए ह्युरिस्टिक, प्रति लक्ष्य JSON आउटपुट, अंतिम सारांश, वैकल्पिक -only-vuln, -no-progress, कस्टम -ua।poc: एक्सप्लॉइट-शैली RSC मल्टीपार्ट अनुरोध भेजता है और लौटाया गया डाइजेस्ट प्रिंट करता है; -c के माध्यम से कस्टम कमांड का समर्थन करता है (डिफ़ॉल्ट id)।-c), टाइमआउट और प्रगति आँकड़े।-target, -list, या -stdin; स्कीम मौजूद न होने पर स्वतः https:// जोड़ता है।vulnlab/) जिसमें Next.js 15.5.6/React 19, Dockerfile और docker-compose.yml सुरक्षित रिप्रो के लिए localhost:3000 पर पिन किया गया है।cd checker
GOCACHE=/tmp/go-cache go build -o CVE-2025-55182 ./cmd/CVE-2025-55182
यदि आपके वातावरण में कैश अनुमति संबंधी समस्याएँ हैं तो GOCACHE सेट करें।
# Scanner
./CVE-2025-55182 checker -target https://example.com
./CVE-2025-55182 checker -list ../targets.txt -c 50 -only-vuln
cat ../targets.txt | ./CVE-2025-55182 checker -stdin -no-progress
# PoC (exploit-style request)
./CVE-2025-55182 poc -target http://localhost:3000
./CVE-2025-55182 poc -target http://localhost:3000 -c "whoami"
CVE-2025-55182 React Server Components में Flight पेलोड से मॉड्यूल लोड करने के तरीके में एक असुरक्षित डिसीरियलाइज़ेशन बग है। react-server-dom-webpack में, हेल्पर requireModule(metadata) एक मॉड्यूल खींचता है और फिर moduleExports[metadata[2]] लौटाता है। ब्रैकेट एक्सेस प्रोटोटाइप चेन पर चलता है, इसलिए $1:constructor:constructor जैसा हमलावर-नियंत्रित संदर्भ एक एक्सपोर्टेड फ़ंक्शन से उसके constructor (वैश्विक Function कंस्ट्रक्टर) तक चढ़ जाता है और मनमाना JS निष्पादित कर सकता है। Flight प्रोटोकॉल हमलावरों को उन कोलन-सेपरेटेड प्रॉपर्टी पाथ की आपूर्ति करने देता है, जिससे मॉड्यूल लोडर रिमोट कोड निष्पादन के लिए एक गैजेट बन जाता है।
cd vulnlab
docker compose build
docker compose up
# App listens on 127.0.0.1:3000 inside the container; runs as non-root user.
Dockerfile एक Next.js ऐप (Node 20 Alpine) बनाता है, निर्भरताएँ इंस्टॉल करता है, बिल्ड करता है, और एक गैर-root nextjs उपयोगकर्ता के रूप में चलता है।docker-compose.yml डिफ़ॉल्ट रूप से केवल-स्थानीय परीक्षण के लिए 127.0.0.1:3000:3000 बाइंड करता है।Snort / Suricata (सर्वर की ओर HTTP)
alert http any any -> $LAN_NETWORK any (
msg:"Potential Next.js React2Shell / CVE-2025-66478 attempt";
flow:to_server,established;
content:"Next-Action"; http_header; nocase;
content:"multipart/form-data"; http_header; nocase;
pcre:"/Content-Disposition:\s*form-data;\s*name=\"0\"/s";
pcre:"/\"status\"\s*:\s*\"resolved_model\"/s";
pcre:"/\"then\"\s*:\s*\"\$1:__proto__:then\"/s";
classtype:web-application-attack;
sid:6655001;
rev:1;
)
क्वेरी (कमजोर React RSC पैकेज)
{
"queries": {
"detect_rev2shell_react_server_components": {
"query": "SELECT name, version, path FROM npm_packages WHERE (name='react-server-dom-parcel' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-turbopack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-webpack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0'));",
"interval": 3600,
"description": "Detects vulnerable versions of React Server Components packages (react-server-dom-*) affected by CVE-2025-55182 / CVE-2025-66478 / React2Shell.",
"platform": "linux,windows,macos",
"version": "1.0"
}
}
}