
CVE-2023-43804 urllib3 कुकी लीक को क्रॉस-ओरिजिन रीडायरेक्ट के माध्यम से पुनरुत्पादित करने वाली कंटेनरीकृत तीन-स्तरीय लैब, जिसमें एक्सप्लॉइट स्क्रिप्ट और पैच सत्यापन शामिल है।
रिपॉजिटरी में एक पूरी तरह से कंटेनरीकृत, तीन-स्तरीय लैब वातावरण शामिल है जिसका उद्देश्य CVE-2023-43804 (क्रॉस-ओरिजिन रीडायरेक्ट के दौरान होने वाला urllib3 कुकी लीक) को प्रदर्शित करना, इसका लाभ उठाना और इसके फिक्स को सत्यापित करना है।
लैब को Docker Compose का उपयोग करके ऑर्केस्ट्रेट किया गया है और इसमें एक आंतरिक ब्रिज नेटवर्क पर संचार करने वाली तीन पृथक सेवाएँ शामिल हैं:
victim_client: पुनरुत्पादन और एक्सप्लॉइट स्क्रिप्ट (exploit.py) को निष्पादित करने वाला Python-आधारित कंटेनर।target_app: एक Flask वेब एप्लिकेशन जो एक कमजोर लक्ष्य सर्वर का अनुकरण करता है जो बाहरी ओरिजिन पर HTTP 302 क्रॉस-ओरिजिन रीडायरेक्ट को ट्रिगर करता है।attacker_app: आने वाले HTTP अनुरोधों को कैप्चर करने और लीक हेडर को निकालने के लिए डिज़ाइन किया गया Flask लॉगिंग सर्वर।git clone [https://github.com/deepanshu-khurana/cve-2023-43804-lab.git](https://github.com/deepanshu-khurana/cve-2023-43804-lab.git)
cd cve-2023-43804-lab
docker compose up -d --build
docker compose up -d
docker compose down --volumes
CVE-2023-43804)urllib3< 1.26.17 या < 2.0.5urllib3 विभिन्न ओरिजिन के बीच HTTP 302 रीडायरेक्ट का पालन करते समय संवेदनशील प्रमाणीकरण हेडर (जैसे Cookie) को हटाने में विफल रहा, जिससे अविश्वसनीय रीडायरेक्शन एंडपॉइंट्स को संवेदनशील सत्र टोकन को इंटरसेप्ट करने की अनुमति मिली।urllib3 का भेद्य संस्करण इंस्टॉल है:docker exec -it victim_client pip install urllib3==1.26.16
docker exec -it victim_client python3 -u /lab/exploit.py
"status": "EXFILTRATED" प्रदर्शित करता है।docker logs attacker_app कैप्चर किए गए संवेदनशील कुकी हेडर को प्रदर्शित करता है।एक्सप्लॉइट देखने के बाद पैच को सत्यापित करने के लिए:
urllib3 को पैच किए गए संस्करण में अपग्रेड करें:docker exec -it victim_client pip install urllib3==1.26.17
docker exec -it victim_client python3 -u /lab/exploit.py
"status": "SECURE", "stolen_cookie": "None / Stripped" प्रदर्शित करता है।attacker_app लॉग पुष्टि करते हैं कि आने वाले अनुरोध में Leaked Cookie Header: None शामिल है।requirements.txt में निर्भरताएँ अपडेट करें:urllib3>=1.26.17
Retry कॉन्फ़िगरेशन में remove_headers_on_redirect के माध्यम से हेडर प्रबंधन नीतियों को स्पष्ट रूप से कॉन्फ़िगर करें।victim_client, target_app, attacker_app) को सटीक रूप से लक्षित करते हैं। सक्रिय कंटेनर नामों को सत्यापित करने के लिए docker ps का उपयोग करें।5000 और 5001 अन्य स्थानीय सेवाओं द्वारा अधिकृत नहीं हैं।जब लैब को भेद्य urllib3==1.26.16 पर चलाया जाता है, तो संवेदनशील प्रमाणीकरण कुकी क्रॉस-ओरिजिन रीडायरेक्ट के दौरान इंटरसेप्ट की जाती है और हमलावर सर्वर द्वारा सफलतापूर्वक लॉग की जाती है।
exploit.py लीक हुए सत्र टोकन के साथ "status": "EXFILTRATED" प्रदर्शित करता है, जिसे attacker_app लॉग आउटपुट द्वारा सत्यापित किया गया है।urllib3 को पैच किए गए संस्करण (1.26.17) में अपग्रेड करने के बाद, लाइब्रेरी क्रॉस-ओरिजिन रीडायरेक्ट के दौरान संवेदनशील Cookie हेडर को स्वचालित रूप से हटा देती है।
पैच किए गए संस्करण में पैकेज अपग्रेड:

pip install urllib3==1.26.17 के माध्यम से victim_client के अंदर urllib3 को अपग्रेड करना।सुरक्षित क्लाइंट आउटपुट और स्ट्रिप्ड लॉग:

exploit.py "stolen_cookie": "None / Stripped" के साथ "status": "SECURE" लौटाता है, जिसकी पुष्टि सर्वर लॉग Leaked Cookie Header: None दिखाकर करता है।