
RSC/Next.js RCE (CVE-2025-55182 और CVE-2025-66478)
Next.js अनुप्रयोगों में React Server Components का उपयोग करते हुए CVE-2025-55182 और CVE-2025-66478 का पता लगाने के लिए एक कमांड-लाइन टूल।
भेद्यता और पहचान पद्धति की तकनीकी जानकारी के लिए, हमारा ब्लॉग पोस्ट देखें: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478
डिफ़ॉल्ट रूप से, स्कैनर एक निर्मित multipart POST अनुरोध भेजता है जिसमें एक RCE proof-of-concept पेलोड होता है जो एक नियतात्मक गणित ऑपरेशन (41*271 = 11111) निष्पादित करता है। कमजोर होस्ट X-Action-Redirect प्रतिक्रिया हेडर में परिणाम को /login?a=11111 के रूप में लौटाते हैं।
स्कैनर डिफ़ॉल्ट रूप से रूट पथ (/) का परीक्षण करता है। कस्टम पथों का परीक्षण करने के लिए --path या --path-file का उपयोग करें। यदि कमजोर नहीं है, तो यह समान-होस्ट रीडायरेक्ट (जैसे, / से ) का अनुसरण करता है और रीडायरेक्ट गंतव्य का परीक्षण करता है। क्रॉस-ओरिजिन रीडायरेक्ट का अनुसरण नहीं किया जाता है।
/en/--safe-check फ़्लैग एक वैकल्पिक पहचान विधि का उपयोग करता है जो लक्ष्य पर कोड निष्पादित किए बिना साइड-चैनल संकेतकों (विशिष्ट error digest के साथ 500 स्टेटस कोड) पर निर्भर करता है। इस मोड का उपयोग तब करें जब RCE निष्पादन वांछित न हो।
--waf-bypass फ़्लैग multipart अनुरोध निकाय के आरंभ में यादृच्छिक जंक डेटा जोड़ता है। यह WAF सामग्री निरीक्षण से बचने में मदद कर सकता है जो केवल अनुरोध निकाय के पहले भाग का विश्लेषण करता है। डिफ़ॉल्ट आकार 128KB है, जिसे --waf-bypass-size के माध्यम से कॉन्फ़िगर किया जा सकता है। जब WAF बायपास सक्षम होता है, तो टाइमआउट स्वचालित रूप से 20 सेकंड तक बढ़ा दिया जाता है (जब तक स्पष्ट रूप से सेट न किया गया हो)।
--vercel-waf-bypass फ़्लैग विशेष रूप से Vercel WAF सुरक्षा को बायपास करने के लिए डिज़ाइन किए गए एक वैकल्पिक पेलोड संस्करण का उपयोग करता है। यह एक अतिरिक्त फ़ॉर्म फ़ील्ड के साथ एक अलग multipart संरचना का उपयोग करता है।
--windows फ़्लैग विंडोज़ पर चलने वाले लक्ष्यों के लिए पेलोड को Unix शेल (echo $((41*271))) से PowerShell (powershell -c "41*271") में बदल देता है।
pip install -r requirements.txt
एकल होस्ट स्कैन करें:
python3 scanner.py -u https://example.com
होस्टों की सूची स्कैन करें:
python3 scanner.py -l hosts.txt
कई थ्रेड्स के साथ स्कैन करें और परिणाम सहेजें:
python3 scanner.py -l hosts.txt -t 20 -o results.json
कस्टम हेडर के साथ स्कैन करें:
python3 scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
सुरक्षित साइड-चैनल पहचान का उपयोग करें:
python3 scanner.py -u https://example.com --safe-check
विंडोज़ लक्ष्यों को स्कैन करें:
python3 scanner.py -u https://example.com --windows
WAF बायपास के साथ स्कैन करें:
python3 scanner.py -u https://example.com --waf-bypass
कस्टम पथ स्कैन करें:
python3 scanner.py -u https://example.com --path /_next
python3 scanner.py -u https://example.com --path /_next --path /api
python3 scanner.py -u https://example.com --path-file paths.txt
-u, --url Single URL to check
-l, --list File containing hosts (one per line)
-t, --threads Number of concurrent threads (default: 10)
--timeout Request timeout in seconds (default: 10)
-o, --output Output file for results (JSON)
--all-results Save all results, not just vulnerable hosts
-k, --insecure Disable SSL certificate verification
-H, --header Custom header (can be used multiple times)
-v, --verbose Show response details for vulnerable hosts
-q, --quiet Only output vulnerable hosts
--no-color Disable colored output
--safe-check Use safe side-channel detection instead of RCE PoC
--windows Use Windows PowerShell payload instead of Unix shell
--waf-bypass Add junk data to bypass WAF content inspection
--waf-bypass-size Size of junk data in KB (default: 128)
--path Custom path to test (can be used multiple times)
--path-file File containing paths to test (one per line)
RCE PoC मूल रूप से @maple3142 द्वारा प्रकट किया गया था -- हम एक कार्यशील PoC प्रकाशित करने के लिए उनके कार्य के प्रति अत्यंत आभारी हैं।
यह टूलिंग मूल रूप से RCE का पता लगाने के एक सुरक्षित तरीके के रूप में बनाई गई थी। यह कार्यक्षमता अभी भी --safe-check, "सुरक्षित पहचान" मोड के माध्यम से उपलब्ध है।
परिणाम टर्मिनल पर मुद्रित होते हैं। -o का उपयोग करते समय, कमजोर होस्ट सत्यापन के लिए पूर्ण HTTP अनुरोध और प्रतिक्रिया वाली JSON फ़ाइल में सहेजे जाते हैं।