
node2shell (CVE-2026-111497) के लिए उच्च-निष्ठा पहचान तंत्र
Node.js HTTP अनुप्रयोगों में CVE-2026-111497 का पता लगाने के लिए एक कमांड-लाइन टूल।
स्कैनर चार एक-बाइट नियंत्रण भेजता है ताकि यह जाना जा सके कि एंडपॉइंट मान्य Brotli JSON, विकृत Brotli, JSON सामग्री प्रकार के बिना अनुरोधों, और असमर्थित एन्कोडिंग को कैसे संभालता है। इसके बाद यह 23,068,764-बाइट का Brotli प्रोब स्ट्रीम करता है और मान्य नियंत्रण को दोहराता है।
किसी लक्ष्य को केवल तब भेद्य बताया जाता है जब पूरा प्रोब मान्य रूट-प्रतिक्रिया वर्ग तक पहुँचता है, विकृत-प्रतिक्रिया वर्ग भिन्न होता है, और अंतिम नियंत्रण पुष्टि करता है कि एंडपॉइंट स्थिर रहा। यह Assetnote के आंतरिक पोस्टमॉड्यूल डिटेक्शन लॉजिक से मेल खाता है और कोई कमांड निष्पादित नहीं करता।
URL पथ संरक्षित रहता है और डिफ़ॉल्ट रूप से / होता है। रीडायरेक्ट का पालन नहीं किया जाता।
प्रत्येक परीक्षित एंडपॉइंट को पाँच एक-बाइट अनुरोध और एक 23,068,764-बाइट प्रोब प्राप्त होता है। प्रोब Expect: 100-continue का उपयोग करता है, इसलिए एक प्रॉक्सी बॉडी अपलोड होने से पहले उसके घोषित आकार को अस्वीकार कर सकता है।
pip install -r requirements.txt
docker build -t node2shell-scanner .
docker run --rm node2shell-scanner -u https://example.com/api
python3 scanner.py -u https://example.com/api
python3 scanner.py -l hosts.txt -t 20 -o results.json
python3 scanner.py -u https://example.com --path /api/json
python3 scanner.py -u https://example.com -H "Authorization: Bearer token"
-u, --url जाँचने के लिए एकल URL
-l, --list होस्ट वाली फ़ाइल (प्रति पंक्ति एक)
-t, --threads समवर्ती थ्रेड्स की संख्या (डिफ़ॉल्ट: 10)
--timeout प्रति-अनुरोध टाइमआउट सेकंड में (डिफ़ॉल्ट: 60)
-o, --output परिणामों के लिए आउटपुट फ़ाइल (JSON)
--all-results केवल भेद्य होस्ट नहीं, बल्कि सभी परिणाम सहेजें
-k, --insecure TLS प्रमाणपत्र सत्यापन अक्षम करें
-H, --header कस्टम हेडर (कई बार उपयोग किया जा सकता है)
-v, --verbose निर्णय के कारण और प्रतिक्रिया स्निपेट दिखाएँ
-q, --quiet केवल भेद्य होस्ट आउटपुट करें
--no-color रंगीन आउटपुट अक्षम करें
--path परीक्षण के लिए कस्टम पथ (कई बार उपयोग किया जा सकता है)
--path-file परीक्षण के लिए पथ वाली फ़ाइल (प्रति पंक्ति एक)
परिणाम टर्मिनल पर प्रिंट होते हैं। -o के साथ, भेद्य होस्ट तुलना मोड और संपादित अनुरोध/प्रतिक्रिया साक्ष्य के साथ JSON में सहेजे जाते हैं। प्रत्येक निर्णय सहेजने के लिए --all-results का उपयोग करें।
Searchlight's Exposure Platform के लिए विकसित डिटेक्शन लॉजिक का उपयोग करते हुए Assetnote Security Research Team द्वारा निर्मित।