
जानबूझकर कमजोर Next.js एप्लिकेशन जो CVE-2025-29927 (मिडलवेयर-आधारित प्रमाणीकरण बाइपास) का प्रदर्शन करता है, सीखने और बग बाउंटी अभ्यास के लिए।
इस रिपॉजिटरी में Next.js का उपयोग करके बनाया गया एक जानबूझकर कमजोर वेब एप्लीकेशन है। यह CVE-2025-29927 नामक सुरक्षा समस्या को प्रदर्शित करने और अध्ययन करने के लिए डिज़ाइन किया गया है। इस परियोजना का उद्देश्य सुरक्षा शोधकर्ताओं, छात्रों और बग बाउंटी शिकारियों को यह समझने में मदद करना है कि यह कमज़ोरी वास्तविक दुनिया के समान वातावरण में कैसे काम करती है।
[!CAUTION] यह एप्लीकेशन जानबूझकर असुरक्षित है और इसे कभी भी उत्पादन (production) में तैनात नहीं किया जाना चाहिए।
CVE-2025-29927, Next.js के साथ बनाए गए एप्लीकेशन में विशेष रूप से मिडलवेयर में अनुरोध (request) तर्क के अनुचित हैंडलिंग से संबंधित है। यह हमलावरों को अनुमति दे सकता है:
git clone https://github.com/metasploit403/cve-2025-29927-lab
cd cve-2025-29927-lab
npm install
npm run dev
कुछ रूट जानबूझकर कमज़ोर हैं और इनमें शामिल हो सकते हैं
- /api/admin/secret
- /api/internal/health
- /api/private/data
ये एंडपॉइंट प्रतिबंधित संसाधनों का अनुकरण करते हैं जिन तक उचित प्राधिकरण के बिना पहुँच नहीं होनी चाहिए।
1.मान लिया कि आपने रिपॉजिटरी को सफलतापूर्वक क्लोन कर लिया है
2.स्टार्ट npm run dev
3.यह आपके प्रोजेक्ट को स्थानीय रूप से चलाएगा
4.अपनी पसंद का ब्राउज़र खोलें, जैसे Chrome, और टाइप करें http://localhost:3000
5.तीनों API एंडपॉइंट में से किसी एक तक पहुँचने का प्रयास करें
- /api/admin/secret
- /api/internal/health
- /api/private/data
6.अब इसे किसी भी एंडपॉइंट के साथ आज़माएं
- http://localhost:3000/api/admin/secret
- http://localhost:3000/api/internal/health
- http://localhost:3000/api/private/data
7.ध्यान दें कि आपका अनुरोध अवरुद्ध है, ऐसा इसलिए है क्योंकि आपने अपने अनुरोध में cookie शामिल नहीं किया है। इसका मतलब है कि एंडपॉइंट मिडलवेयर द्वारा संरक्षित है। मिडलवेयर जाँच रहा है कि आपके अनुरोध में कुकी है या नहीं, और यदि नहीं है तो यह स्वचालित रूप से ब्लॉक हो जाता है
8.अब अपने अनुरोध में cookie जोड़ें। ऐसा करने के लिए Chrome डेवटूल खोलें (मैं यहाँ Chrome ब्राउज़र का उपयोग कर रहा हूँ, आप कोई भी ब्राउज़र उपयोग कर सकते हैं)
9.F12 दबाएं और Chrome डेवटूल खुल जाएगा
10.Console टैब पर जाएं
11.कंसोल टैब में टाइप करें document.cookie="lab-auth=authenticated"
12.अब पेज को रिफ्रेश करें और देखें कि आप लॉगिन हैं
ध्यान रखें कि मिडलवेयर जाँच रहा है कि अनुरोध में कुकी है या नहीं। यदि अनुरोध में कुकी है तो आप सफलतापूर्वक लॉगिन करते हैं, यदि नहीं है तो ब्लॉक हो जाते हैं। प्रश्न यह है कि हम मिडलवेयर की जाँच को बायपास करके बिना कुकी प्रदान किए लॉगिन कैसे कर सकते हैं? यही वह काम है जो CVE-2025-29927 हमें करने देता है
अब आइए CVE-2025-29927 के साथ मिडलवेयर प्रमाणीकरण जाँच को बायपास करें। यहाँ ट्रिक केवल यह विशेष हेडर जोड़ना है:
x-middleware-subrequest: middleware.
यह हेडर केवल फ्रेमवर्क द्वारा आंतरिक रूप से उपयोग किया जाना चाहिए। यदि हम इसे जोड़ते हैं तो मिडलवेयर यह जाँचना बंद कर देगा कि हमारे अनुरोध में कुकी है या नहीं, और अब आपके एप्लीकेशन में कोई भी संवेदनशील एंडपॉइंट रक्षाहीन हो जाता है
इसका शोषण करने के लिए आइए cURL का उपयोग करें।
cURL एक कमांड-लाइन टूल है जिसका उपयोग सर्वर को अनुरोध भेजने और प्रतिक्रिया प्राप्त करने के लिए किया जाता है
1.बिना कुकी के 401 की उम्मीद करें
curl.exe -i http://localhost:3000/api/admin/secret
ध्यान दें कि सर्वर ने स्टेटस कोड 307 अस्थायी रीडायरेक्ट के साथ उत्तर दिया। चूँकि कोई कुकी नहीं है, हमें होमपेज/रूट पेज पर रीडायरेक्ट कर दिया गया है। इसका मतलब है कि हम कुकी प्रदान किए बिना लॉगिन नहीं कर सकते।
2.curl.exe -i http://localhost:3000/api/admin/secret -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware"
अब हमने "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" जोड़ा ध्यान दें कि हम अब बिना कुकी के लॉगिन तक पहुँच प्राप्त कर सकते हैं। यह पूर्ण प्रमाणीकरण बायपास है
वास्तविक एप्लीकेशन में इस प्रकार की समस्याओं को ठीक करने के लिए:
यह परियोजना केवल शैक्षिक उद्देश्यों के लिए है। इन तकनीकों का उपयोग उन प्रणालियों पर न करें जिनके आप मालिक नहीं हैं या जिनके परीक्षण की आपको स्पष्ट अनुमति नहीं है।
बेझिझक:
यदि आपको यह उपयोगी लगता है, तो रिपॉजिटरी को स्टार करने पर विचार करें।
- Next.js
- Bug Bounty
- Web Security
- CVE-2025-29927
- Middleware Authentication
- Bypass