
CVE-2018-19131 का प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट: X.509 प्रमाणपत्र के माध्यम से Squid प्रॉक्सी XSS
इसके साथ कुछ भी अवैध न करें। यह मैलवेयर नहीं है। यह केवल एक अवधारणा-प्रमाण (proof of concept) है।
यह CVE-2018-19131 का एक डेमो है, जो Docker Compose ऐप में चलता है।

यह लाइब्रेरी Squid संस्करण 3.5.27 बनाती है, जो असुरक्षित (vulnerable) है। संस्करण 3.5.28 असुरक्षित नहीं है। प्रभावित विशिष्ट संस्करण यहाँ सूचीबद्ध हैं।
परीक्षण Windows 10 और Mac OS X Mojave दोनों पर सफल रहा है।
इसे उसी होस्ट पर न चलाएं जिससे आप प्रॉक्सी करने के लिए कॉन्फ़िगर किए गए हैं, क्योंकि प्रॉक्सी सभी HTTP अनुरोधों को वापस अपने पास रीडायरेक्ट कर देगा। क्लाइंट और सर्वर दो अलग-अलग मशीनें होनी चाहिए।
git clone https://github.com/JonathanWilbur/CVE-2018-19131.git चलाकर इस रिपॉजिटरी को क्लोन करें।cd CVE-2018-19131 चलाकर डायरेक्टरी में प्रवेश करें।docker-compose up चलाकर एप्लिकेशन बनाएं।HTTPS प्रॉक्सी सेट करना एक बहुत ही मानक कार्य है। Windows और MacOS में यह होता है। Linux में, यदि आप रचनात्मक हैं, तो कुछ भी उपलब्ध है। मैं यहाँ प्रॉक्सी सेट करने का तरीका नहीं लिखूंगा, क्योंकि यह पहले से ही अन्यत्र व्यापक रूप से प्रलेखित है। बस अपने कंप्यूटर को उस सर्वर की ओर इंगित करें जिस पर आपने असुरक्षित Squid इंस्टेंस स्थापित किया है।
हालाँकि, मैं यह नोट करूँगा कि आपको HTTP नहीं, बल्कि HTTPS प्रॉक्सी का उपयोग करना चाहिए। MacOS पर, Proxies सेटिंग्स में, इसे Secure Web Proxy कहा जाता है। Windows ऐसा कोई भेद नहीं करता है।
https://web से कनेक्ट करके दुर्भावनापूर्ण साइट तक पहुँचें। पहली प्रमाणपत्र त्रुटि स्वीकार करें, जो केवल प्रॉक्सी द्वारा HTTPS ट्रैफ़िक को इंटरसेप्ट करने के कारण होती है, फिर आपको अगला पृष्ठ दिखाई देगा, जो शोषण (exploit) चलाएगा। आपको एक वेब ब्राउज़र अलर्ट देखना चाहिए जो HACKED! कहता है।
OK पर क्लिक करने के बाद, आपको सुरक्षित रूप से कनेक्ट करने में विफलता के लिए डिफ़ॉल्ट Squid पृष्ठ दिखाई देगा। आप देखेंगे कि प्रदर्शित issuer/subject नाम--जो एक ही हैं, क्योंकि यह self-signed प्रमाणपत्र का उपयोग करता है--में commonName (CN) विशेषता गायब है। ऐसा इसलिए है क्योंकि इसका मान था:
<script>alert("HACKED!");</script>
जिसे कच्चे HTML के रूप में व्याख्यायित किया जाता है और इसलिए, स्क्रिप्ट निष्पादित हो जाती है!
यदि आप इस लाइब्रेरी में सुधार या त्रुटियों के समाधान का सुझाव देना चाहते हैं, तो कृपया इस GitHub पृष्ठ पर एक मुद्दा (issue) दर्ज करें। यदि आप अन्य कारणों से मुझसे संपर्क करना चाहते हैं, तो कृपया मुझे [email protected] पर ईमेल करें (मेरी GPG कुंजी) (मेरा TLS प्रमाणपत्र)। 🐗