
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
डिफ़ॉल्ट रूप से, स्कैनर एक निर्मित मल्टीपार्ट POST अनुरोध भेजता है जिसमें एक RCE प्रूफ-ऑफ-कॉन्सेप्ट पेलोड होता है जो एक निर्धारित गणितीय क्रिया (41*271 = 11111) को निष्पादित करता है। संवेदनशील होस्ट परिणाम को X-Action-Redirect प्रतिक्रिया हेडर में /login?a=11111 के रूप में लौटाते हैं।
स्कैनर डिफ़ॉल्ट रूप से रूट पथ (/) का परीक्षण करता है। कस्टम पथों का परीक्षण करने के लिए --path या --path-file का उपयोग करें। यदि संवेदनशील नहीं है, तो यह समान-होस्ट रिडायरेक्ट (उदाहरण: से ) का अनुसरण करता है और रिडायरेक्ट गंतव्य का परीक्षण करता है। क्रॉस-ओरिजिन रिडायरेक्ट का अनुसरण नहीं किया जाता है।
//en/--safe-check फ्लैग एक वैकल्पिक पता लगाने की विधि का उपयोग करता है जो लक्ष्य पर कोड निष्पादित किए बिना साइड-चैनल संकेतकों (विशिष्ट त्रुटि डाइजेस्ट के साथ 500 स्थिति कोड) पर निर्भर करता है। जब RCE निष्पादन वांछित नहीं है तो इस मोड का उपयोग करें।
--waf-bypass फ्लैग मल्टीपार्ट अनुरोध बॉडी में यादृच्छिक जंक डेटा जोड़ता है। यह WAF सामग्री निरीक्षण से बचने में मदद कर सकता है जो केवल अनुरोध बॉडी के पहले भाग का विश्लेषण करता है। डिफ़ॉल्ट आकार 128KB है, जो --waf-bypass-size के माध्यम से कॉन्फ़िगरेबल है। जब WAF बाईपास सक्षम होता है, तो टाइमआउट स्वचालित रूप से 20 सेकंड तक बढ़ा दिया जाता है (जब तक कि स्पष्ट रूप से सेट न किया गया हो)।
--vercel-waf-bypass फ्लैग एक वैकल्पिक पेलोड वैरिएंट का उपयोग करता है जो विशेष रूप से Vercel WAF सुरक्षाओं को बायपास करने के लिए डिज़ाइन किया गया है। यह एक अतिरिक्त फॉर्म फ़ील्ड के साथ एक अलग मल्टीपार्ट संरचना का उपयोग करता है।
--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 जाँच करने के लिए एकल URL
-l, --list होस्ट वाली फ़ाइल (प्रति पंक्ति एक)
-t, --threads समवर्ती थ्रेड की संख्या (डिफ़ॉल्ट: 10)
--timeout अनुरोध टाइमआउट सेकंड में (डिफ़ॉल्ट: 10)
-o, --output परिणामों के लिए आउटपुट फ़ाइल (JSON)
--all-results सभी परिणाम सहेजें, न कि केवल संवेदनशील होस्ट
-k, --insecure SSL प्रमाणपत्र सत्यापन अक्षम करें
-H, --header कस्टम हेडर (एकाधिक बार उपयोग किया जा सकता है)
-v, --verbose संवेदनशील होस्ट के लिए प्रतिक्रिया विवरण दिखाएं
-q, --quiet केवल संवेदनशील होस्ट आउटपुट करें
--no-color रंगीन आउटपुट अक्षम करें
--safe-check RCE PoC के बजाय सुरक्षित साइड-चैनल पहचान का उपयोग करें
--windows Unix शेल के बजाय Windows PowerShell पेलोड का उपयोग करें
--waf-bypass WAF सामग्री निरीक्षण को बायपास करने के लिए जंक डेटा जोड़ें
--waf-bypass-size जंक डेटा का आकार KB में (डिफ़ॉल्ट: 128)
--path परीक्षण करने के लिए कस्टम पथ (एकाधिक बार उपयोग किया जा सकता है)
--path-file परीक्षण करने के लिए पथ वाली फ़ाइल (प्रति पंक्ति एक)
RCE PoC मूल रूप से @maple3142 द्वारा प्रकट किया गया था -- हम कार्यशील PoC प्रकाशित करने के लिए उनके काम के लिए अविश्वसनीय रूप से आभारी हैं।
यह टूलिंग मूल रूप से RCE का पता लगाने के सुरक्षित तरीके के रूप में बनाई गई थी। यह कार्यक्षमता अभी भी --safe-check, "सुरक्षित पहचान" मोड के माध्यम से उपलब्ध है।
परिणाम टर्मिनल पर मुद्रित होते हैं। -o का उपयोग करने पर, संवेदनशील होस्ट को सत्यापन के लिए पूर्ण HTTP अनुरोध और प्रतिक्रिया वाली JSON फ़ाइल में सहेजा जाता है।