
SQL इंजेक्शन CVE-2019-8979 के साथ खेलने के लिए एक डॉकर-कंटेनरीकृत koseven हैलो वर्ल्ड, जो संस्करण < 3.3.10 को प्रभावित करता है
CVE-2019-8979 के साथ प्रयोग करने के लिए एक Docker में समाहित https://github.com/koseven/koseven[koseven] हैलो वर्ल्ड, जो 3.3.10 से पुराने संस्करणों को प्रभावित करने वाली SQL इंजेक्शन भेद्यता है। यह हैलो वर्ल्ड वास्तव में https://koseven.dev/documentation/orm/examples/simple[प्रलेखन] से आता है, मैंने बस Docker भाग और PoC एक्सप्लॉइट जोड़ दिए हैं।
= CVE-2019-8979 यह SQL इंजेक्शन समस्या मूल रूप से एक तृतीय पक्ष द्वारा https://github.com/koseven/koseven/issues/323[रिपोर्ट] की गई थी और 27 फरवरी 2019 को master में ठीक कर दी गई थी, लेकिन डेवलपर्स फिक्स युक्त नया रिलीज़ प्रकाशित करना भूल गए। परिणामस्वरूप, उस समय का नवीनतम स्थिर रिलीज़, https://github.com/koseven/koseven/releases/tag/3.3.9[koseven-3.3.9] जो 20 नवंबर 2018 को प्रकाशित हुआ था, तब तक भेद्य बना रहा जब तक https://github.com/koseven/koseven/releases/tag/3.3.10[koseven-3.3.10] 12 अक्टूबर 2020 को जारी नहीं हुआ, जब https://elttam.com[elttam] ने 10 अक्टूबर 2020 को इस चूक पर ध्यान दिया और निजी तौर पर मुख्य डेवलपर्स को सूचित किया।
= सीमाएँ
यद्यपि MySQL से कुछ जानकारी प्राप्त की जा सकती है, जैसे current_user(), database() या information_schema से टेबल और कॉलम के नाम, फिर भी order by दिशा इनपुट पर के ] किए जाने के कारण अन्य टेबलों से डेटा प्राप्त करना संभव नहीं हो सकता है।
strtoupper()ऐसा इसलिए है क्योंकि जब MySQL ऐसे ऑपरेटिंग सिस्टम पर चल रहा होता है जहाँ डेटा निर्देशिका केस-सेंसिटिव फाइलसिस्टम पर स्थित होती है, तो डेटाबेस और टेबल के नाम केस सेंसिटिव होते हैं। परिणामस्वरूप यह SQLi केवल तभी पूरी तरह से एक्सप्लॉइट किया जा सकता है जब:
lower_case_table_names sysvar > 0 होअधिक जानकारी के लिए https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html[Identifier Case Sensitivity] देखें।
= डेमो