
जेम्स केटल के (CVE-2025-32094) HTTP/1.1 को मरना चाहिए: डिसिंक एंडगेम के परीक्षण के लिए Go टूल और Nuclei टेम्पलेट
इस रिपॉजिटरी में PortSwigger के James Kettle के अभूतपूर्व शोध पर आधारित HTTP/1 अनुरोध तस्करी (desync) भेद्यताओं का पता लगाने के लिए रक्षात्मक सुरक्षा उपकरण शामिल हैं।
यह कार्य सीधे तौर पर निम्नलिखित तकनीकों से प्रेरित है और उन्हें लागू करता है:
इन उपकरणों में लागू किए गए हमले के पैटर्न, तकनीक और पता लगाने के तरीके James Kettle के अग्रणी कार्य पर आधारित हैं, जिसने प्रमुख वेब बुनियादी ढांचा प्रदाताओं में HTTP/1.1 प्रोटोकॉल कार्यान्वयन में मूलभूत खामियों को उजागर किया।
James Kettle के शोध ने निम्नलिखित को प्रभावित करने वाली भेद्यताओं का प्रदर्शन किया:
HTTP/1.1 की अस्पष्ट अनुरोध सीमा परिभाषाएँ वह बनाती हैं जिसे James Kettle ने अनुरोधों के शुरू और खत्म होने के बारे में "अत्यधिक अस्पष्टता" कहा। इससे फ्रंट-एंड और बैक-एंड सर्वरों के बीच पार्सर विसंगतियाँ पैदा होती हैं, जो परिष्कृत अनुरोध तस्करी हमलों को सक्षम बनाती हैं। ये उपकरण रक्षात्मक सुरक्षा परीक्षण के लिए ऐसी भेद्यताओं की पहचान करने में मदद करते हैं।
http1-desync-test.go)एक व्यापक HTTP/1 desync भेद्यता परीक्षक जो कई हमले पैटर्न लागू करता है।
# रिपॉजिटरी क्लोन करें
git clone https://github.com/nconsolo/echteeteepee.git
cd echteeteepee
# निर्भरताएँ स्थापित करें
go mod download
# उपकरण बनाएँ
go build -o http1-desync-test http1-desync-test.go
# सभी हमले पैटर्न का परीक्षण करें
./http1-desync-test -target https://example.com
# विशिष्ट हमले पैटर्न का परीक्षण करें
./http1-desync-test -target https://example.com -test vh
# विस्तृत आउटपुट सक्षम करें
./http1-desync-test -target https://example.com -verbose
# कस्टम टाइमआउट सेट करें
./http1-desync-test -target https://example.com -timeout 10s
-target: लक्ष्य URL (आवश्यक)-test: परीक्षण प्रकार: all, vh, 0cl, expect, double, clte (डिफ़ॉल्ट: all)-timeout: अनुरोध टाइमआउट (डिफ़ॉल्ट: 5s)-verbose: कच्चे अनुरोध/प्रतिक्रिया देखने के लिए विस्तृत आउटपुट सक्षम करेंnuclei-templates/http1-desync.yaml)बड़े पैमाने पर HTTP/1 desync भेद्यताओं का पता लगाने के लिए Nuclei के लिए स्वचालित स्कैनिंग टेम्पलेट।
# Nuclei स्थापित करें (यदि पहले से स्थापित नहीं है)
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# टेम्पलेट को Nuclei टेम्पलेट निर्देशिका में कॉपी करें
cp nuclei-templates/http1-desync.yaml ~/.nuclei-templates/
# एकल लक्ष्य स्कैन करें
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml
# एकाधिक लक्ष्य स्कैन करें
nuclei -l targets.txt -t nuclei-templates/http1-desync.yaml
# दर सीमित करके स्कैन करें
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml -rl 10
सभी हमले पैटर्न James Kettle के शोध निष्कर्षों और सिद्ध शोषण तकनीकों पर आधारित हैं।
स्रोत: James Kettle का "HTTP/1 Must Die" शोध
उन विसंगतियों का शोषण करता है जहाँ फ्रंट-एंड प्रॉक्सी एक अनुरोध सीमा देखता है जबकि बैक-एंड सर्वर दूसरी देखता है। हमले का पेलोड फ्रंट-एंड को हेडर डेटा के रूप में दिखाई देने वाले में एक छिपा हुआ अनुरोध एम्बेड करता है, लेकिन बैक-एंड द्वारा एक अलग अनुरोध के रूप में व्याख्या किया जाता है।
शोध से उदाहरण: प्रमुख CDN प्रदाताओं में पार्सर अंतर प्रदर्शित करने के लिए उपयोग किया गया।
स्रोत: James Kettle के IIS और T-Mobile भेद्यता निष्कर्ष
सर्वरों के बीच Content-Length: 0 हेडर की अलग-अलग व्याख्याओं का लाभ उठाता है। कुछ सर्वर CL=0 होने पर बॉडी को अनदेखा करते हैं, जबकि अन्य इसे प्रोसेस करते हैं, जिससे अनुरोध सीमा भ्रम पैदा होता है।
वास्तविक दुनिया का प्रभाव: IIS सर्वरों और T-Mobile बुनियादी ढांचे के खिलाफ सफलतापूर्वक शोषण किया गया।
स्रोत: James Kettle का T-Mobile और LastPass शोध
Expect: 100-continue तंत्र का शोषण करता है जहाँ फ्रंट-एंड और बैक-एंड निरंतरता को अलग-अलग संभालते हैं। यह अनुरोधों की तस्करी के अवसर पैदा करता है जबकि फ्रंट-एंड 100-continue प्रतिक्रिया की प्रतीक्षा करता है।
शोध संदर्भ: T-Mobile और LastPass प्रमाणीकरण प्रणालियों के खिलाफ प्रदर्शित किया गया।
स्रोत: James Kettle की उन्नत desync पद्धति
प्रतिक्रिया कतार को विषाक्त करने के लिए कई desync हमलों को श्रृंखलित करता है, जिससे हमलावर यह नियंत्रित कर सकता है कि अन्य उपयोगकर्ताओं को कौन सी प्रतिक्रियाएँ मिलती हैं। यह शोध में सबसे परिष्कृत हमलों में से एक का प्रतिनिधित्व करता है।
महत्वपूर्ण निष्कर्ष: वैध उपयोगकर्ताओं को दुर्भावनापूर्ण प्रतिक्रियाएँ प्रस्तुत करके पूर्ण साइट अधिग्रहण सक्षम करता है।
स्रोत: James Kettle द्वारा मुख्य HTTP/1.1 अस्पष्टता शोध
Content-Length और Transfer-Encoding: chunked हेडर के बीच विरोधों का शोषण करता है। विभिन्न सर्वर इन हेडर को अलग-अलग प्राथमिकता देते हैं, जिससे पार्सर विसंगतियाँ पैदा होती हैं जो अनुरोध तस्करी को सक्षम बनाती हैं।
आधार: ये विरोध उस मूलभूत दोष का प्रतिनिधित्व करते हैं जिसे James Kettle ने HTTP/1.1 विनिर्देश में पहचाना।
James Kettle की शोध पद्धति के आधार पर, उपकरण निम्नलिखित की तलाश करते हैं:
James Kettle के प्रभाव वर्गीकरण का पालन करते हुए:
ये उपकरण निम्नलिखित के लिए डिज़ाइन किए गए हैं:
इन उपकरणों का उपयोग न करें:
James Kettle की पद्धति का पालन करते हुए, उपकरण desync स्थितियों का उचित परीक्षण करने के लिए स्थायी HTTP/1.1 कनेक्शन बनाए रखते हैं। प्रत्येक परीक्षण एक एकल TCP कनेक्शन बनाता है और पार्सिंग अंतर देखने के लिए कई अनुरोध भेजता है।
हमले के पेलोड James Kettle द्वारा अपने शोध में उपयोग किए गए सटीक पैटर्न के आधार पर सावधानीपूर्वक तैयार किए जाते हैं, जो उनके द्वारा दस्तावेजित सर्वर व्यवहारों के साथ संगतता सुनिश्चित करते हैं।
पता लगाने का तर्क उन्हीं संकेतकों को लागू करता है जिनका उपयोग James Kettle ने अपने $350K+ बग बाउंटी शोध के दौरान सफल desync हमलों की पहचान करने के लिए किया था।
James Kettle के निष्कर्षों और सिफारिशों पर आधारित:
MIT लाइसेंस - विवरण के लिए LICENSE फ़ाइल देखें
ये उपकरण केवल शैक्षिक और रक्षात्मक सुरक्षा उद्देश्यों के लिए प्रदान किए गए हैं। उपयोगकर्ता किसी भी सिस्टम का परीक्षण करने से पहले उचित प्राधिकरण सुनिश्चित करने के लिए जिम्मेदार हैं। लेखक इन उपकरणों के दुरुपयोग या क्षति के लिए कोई दायित्व नहीं लेते हैं।