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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-22243 — स्प्रिंग फ्रेमवर्क को प्रभावित करने वाले CVE-2024-22243 के शोषण योग्य परिदृश्यों के उदाहरण (open redirect और SSRF)। | Kitploit
उपकरण/GitHubGitHub/seanpesce/cve-2024-22243
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षाCTFलर्निंग और शिक्षा
GitHubseanpesce/cve-2024-22243

CVE-2024-22243

स्प्रिंग फ्रेमवर्क को प्रभावित करने वाले CVE-2024-22243 के शोषण योग्य परिदृश्यों के उदाहरण (open redirect और SSRF)।

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

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

सभी देखें →

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

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

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

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

CVE-2024-22243

लेखक: Sean Pesce

यह प्रोजेक्ट एक उदाहरण वेब एप्लिकेशन शामिल करता है जो CVE-2024-22243 के लिए शोषण योग्य परिदृश्यों का प्रदर्शन करता है, जो Java Spring Framework में एक URL-पार्सिंग भेद्यता है (आधिकारिक प्रकटीकरण यहाँ).

भेद्यता

Spring के प्रभावित संस्करण URLs के "userinfo" खंड को एक अद्वितीय तरीके से पार्स करते हैं, जिसके परिणामस्वरूप संभावित रूप से एक होस्ट नाम खंड निकाला जा सकता है जो कई अन्य सामान्य लाइब्रेरियों से भिन्न होता है।

असामान्य व्यवहार निम्नलिखित नियमित अभिव्यक्ति (regex) के कारण है UriComponentsBuilder वर्ग में (जो इस कमिट द्वारा 2014 में जोड़ा गया):

root@kitploit:~
private static final String USERINFO_PATTERN = "([^@\\[/?#]*)";

यह regex उपयोगकर्ता जानकारी खंड में 'बायाँ ब्रैकेट' वर्ण ([) की अनुमति नहीं देता है। हालांकि, Spring इस व्यवहार में एक बाहरी प्रतीत होता है, इसलिए ऑब्जेक्ट पर को कॉल करना, जो या का उपयोग करके बनाया गया है, अप्रत्याशित व्यवहार का परिणाम दे सकता है। , , और वर्ग भी प्रभावित हैं क्योंकि वे आंतरिक रूप से का उपयोग करते हैं; इसलिए, कार्यान्वयन के सीधे उपयोग के बिना भी असुरक्षित हो सकते हैं।

UriComponents
getHost()
UriComponentsBuilder.fromUriString
UriComponentsBuilder.fromHttpUrl
RestTemplate
RestClient
WebClient
UriComponentsBuilder
UriComponentsBuilder

विशेष रूप से तैयार किए गए इनपुट के लिए, Spring एक होस्ट नाम मान लौटाएगा जो निम्नलिखित सभी से भिन्न होता है:

  • आधुनिक वेब ब्राउज़र, जिनमें शामिल हैं:
    • Chrome (और अन्य Chromium-आधारित ब्राउज़र)
    • Firefox
    • Safari
  • java.net.URI (कथित तौर पर केवल विशिष्ट Java संस्करणों के लिए; अन्य संस्करण URISyntaxException उत्पन्न करते हैं)
  • java.net.URL
  • curl
  • android.net.Uri
  • okhttp3.HttpUrl
  • (Python 3) urllib.parse.urlparse

(ध्यान दें कि यह सूची गैर-व्यापक है।)

यह व्यवहार संभावित रूप से Spring-आधारित वेब एप्लिकेशन को ओपन रिडायरेक्ट और सर्वर-साइड रिक्वेस्ट फोर्जरी (SSRF) के प्रति असुरक्षित बना सकता है यदि निर्भर कार्यान्वयन प्राधिकरण या अन्य सुरक्षा-प्रासंगिक तंत्रों के लिए विश्वसनीय होस्ट नामों का उपयोग करता है।

उदाहरण

उदाहरण वेब एप्लिकेशन में दो असुरक्षित एंडपॉइंट हैं।

पहला एंडपॉइंट, /redirect, दिखाता है कि कैसे Spring का असामान्य URL पार्सिंग एक ओपन रिडायरेक्ट का परिणाम दे सकता है। इसका शोषण निम्नलिखित जैसे URL का उपयोग करके किया जा सकता है:

root@kitploit:~
https://127.0.0.1[@evil.com

दूसरा एंडपॉइंट, /health-check, प्रदर्शित करता है कि कैसे Spring और Java मानक लाइब्रेरी URL वर्ग के बीच URL पार्सिंग में बेमेल सर्वर-साइड रिक्वेस्ट फोर्जरी (SSRF) का परिणाम दे सकता है। इसका शोषण निम्नलिखित जैसे URL का उपयोग करके किया जा सकता है:

root@kitploit:~
https://evil.com[@127.0.0.1

उपयोग

Maven के साथ इस प्रोजेक्ट को बनाने के लिए, निम्नलिखित कमांड चलाएं (OpenJDK 17 के साथ परीक्षण किया गया):

root@kitploit:~
mvn clean package

फिर, निम्नलिखित जैसे कमांड के साथ वेब ऐप शुरू करें:

root@kitploit:~
java -jar seanpesce-cve-2024-22243.jar 9999

वेब ऐप http://127.0.0.1:9999/ पर सुलभ होगा।

डॉकर

डॉकर इमेज बनाने के लिए, निम्नलिखित कमांड चलाएं:

root@kitploit:~
docker build -t seanpesce-cve-2024-22243:latest .

फिर, निम्नलिखित जैसे कमांड के साथ वेब ऐप शुरू करें:

root@kitploit:~
docker run -i -e PORT=9999 -p 9999:9999 seanpesce-cve-2024-22243:latest

वेब ऐप डॉकर होस्ट पर http://127.0.0.1:9999/ पर सुलभ होगा।

सेमग्रेप

इस रिपॉजिटरी में संभावित रूप से असुरक्षित कोड पथों की स्कैनिंग में सहायता के लिए semgrep नियम भी शामिल हैं। spring-cve-2024-22243_loose.yaml कमजोर APIs के किसी भी उपयोग के लिए naive स्कैन करता है; इस प्रकार, यह अक्सर बड़ी संख्या में गलत सकारात्मक परिणाम लौटाएगा। spring-cve-2024-22243_strict.yaml सख्त तर्क और टैंट विश्लेषण का उपयोग करने का प्रयास करता है; हालांकि, इसका पूरी तरह से परीक्षण नहीं किया गया है और इसमें कुछ कमजोर कार्यान्वयनों को याद करने की उच्च संभावना है (विशेषकर जब Semgrep Pro का उपयोग नहीं कर रहे हैं, जो क्रॉस-फ़ाइल विश्लेषण के लिए आवश्यक है)।

अन्य संसाधन

  • NIST डेटाबेस प्रविष्टि
  • भेद्यता को ठीक करने वाला Git कमिट
  • कमजोर कार्यान्वयन डेमो: ओपन रिडायरेक्ट के साथ कमजोर OAuth प्रवाह द्वारा threedr3am (SecCoder Security Lab)
  • CVE-2024-22259, एक दूसरी URL-पार्सिंग भेद्यता जो CVE-2024-22243 के परिणामस्वरूप खोजी गई थी
  • CVE-2024-22262, एक तीसरी URL-पार्सिंग भेद्यता जो पहले दो निष्कर्षों के परिणामस्वरूप खोजी गई थी
  • PortSwigger URL बाईपास चीट शीट, जिसमें CVE-2024-22243 के लिए पेलोड शामिल हैं
टूल डाउनलोड करें