SQLMap - Cheetsheat
Configuration instantanément disponible pour l'évaluation des vulnérabilités et les tests de pénétration. Lancez un pentest complet de n'importe où avec plus de 20 outils et fonctionnalités allant de la reconnaissance au reporting. Nous ne remplaçons pas les pentesteurs - nous développons des outils personnalisés, des modules de détection et d'exploitation pour leur permettre de gagner du temps pour creuser plus profondément, ouvrir des shells et s'amuser.
Arguments de base pour SQLmap
Générique
Récupérer des informations
Interne
Données de la base de données
Lieu de l'injection
À partir de la capture Burp/ZAP
Capturez la requête et créez un fichier req.txt
Injection de requête GET
Injection de requête POST
Injections dans les en-têtes et autres méthodes HTTP
Indiquer la chaîne lorsque l'injection est réussie
Eval
Sqlmap permet d'utiliser -e
ou --eval
pour traiter chaque charge utile avant de l'envoyer avec un oneliner python. Cela facilite et accélère le traitement personnalisé de la charge utile avant de l'envoyer. Dans l'exemple suivant, la session cookie flask est signée par flask avec le secret connu avant de l'envoyer:
Coquille
Lire le fichier
Parcourir un site web avec SQLmap et auto-exploiter
Injection de Second Ordre
Lisez cet articlesur comment effectuer des injections de second ordre simples et complexes avec sqlmap.
Personnalisation de l'injection
Définir un suffixe
Préfixe
Aide pour trouver une injection booléenne
Altérer
Rappelez-vous que vous pouvez créer votre propre altérer en python et c'est très simple. Vous pouvez trouver un exemple d'altérer dans la page d'injection de second ordre ici.
Tamper | Description |
---|---|
apostrophemask.py | Remplace le caractère apostrophe par son homologue UTF-8 en pleine largeur |
apostrophenullencode.py | Remplace le caractère apostrophe par son homologue double unicode illégal |
appendnullbyte.py | Ajoute un caractère NULL encodé à la fin de la charge utile |
base64encode.py | Encode en base64 tous les caractères d'une charge utile donnée |
between.py | Remplace l'opérateur supérieur ('>') par 'NOT BETWEEN 0 AND #' |
bluecoat.py | Remplace le caractère espace après l'instruction SQL par un caractère blanc aléatoire valide. Remplace ensuite le caractère = par l'opérateur LIKE |
chardoubleencode.py | Double encode en URL tous les caractères d'une charge utile donnée (sans traiter les caractères déjà encodés) |
commalesslimit.py | Remplace les instances comme 'LIMIT M, N' par 'LIMIT N OFFSET M' |
commalessmid.py | Remplace les instances comme 'MID(A, B, C)' par 'MID(A FROM B FOR C)' |
concat2concatws.py | Remplace les instances comme 'CONCAT(A, B)' par 'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)' |
charencode.py | Encode en URL tous les caractères d'une charge utile donnée (sans traiter les caractères déjà encodés) |
charunicodeencode.py | Encode en URL Unicode les caractères non encodés d'une charge utile donnée (sans traiter les caractères déjà encodés). "%u0022" |
charunicodeescape.py | Encode en URL Unicode les caractères non encodés d'une charge utile donnée (sans traiter les caractères déjà encodés). "\u0022" |
equaltolike.py | Remplace toutes les occurrences de l'opérateur égal ('=') par l'opérateur 'LIKE' |
escapequotes.py | Échappe aux guillemets (' et ") |
greatest.py | Remplace l'opérateur supérieur ('>') par son homologue 'GREATEST' |
halfversionedmorekeywords.py | Ajoute un commentaire MySQL versionné avant chaque mot-clé |
ifnull2ifisnull.py | Remplace les instances comme 'IFNULL(A, B)' par 'IF(ISNULL(A), B, A)' |
modsecurityversioned.py | Encadre la requête complète avec un commentaire versionné |
modsecurityzeroversioned.py | Encadre la requête complète avec un commentaire à zéro version |
multiplespaces.py | Ajoute plusieurs espaces autour des mots-clés SQL |
nonrecursivereplacement.py | Remplace les mots-clés SQL prédéfinis par des représentations adaptées au remplacement (par ex. .replace("SELECT", "")) filtres |
percentage.py | Ajoute un signe de pourcentage ('%') devant chaque caractère |
overlongutf8.py | Convertit tous les caractères d'une charge utile donnée (sans traiter les caractères déjà encodés) |
randomcase.py | Remplace chaque caractère de mot-clé par une valeur de cas aléatoire |
randomcomments.py | Ajoute des commentaires aléatoires aux mots-clés SQL |
securesphere.py | Ajoute une chaîne spécialement conçue |
sp_password.py | Ajoute 'sp_password' à la fin de la charge utile pour l'obfuscation automatique des journaux du SGBD |
space2comment.py | Remplace le caractère espace (' ') par des commentaires |
space2dash.py | Remplace le caractère espace (' ') par un commentaire de tiret ('--') suivi d'une chaîne aléatoire et d'un saut de ligne ('\n') |
space2hash.py | Remplace le caractère espace (' ') par un caractère dièse ('#') suivi d'une chaîne aléatoire et d'un saut de ligne ('\n') |
space2morehash.py | Remplace le caractère espace (' ') par un caractère dièse ('#') suivi d'une chaîne aléatoire et d'un saut de ligne ('\n') |
space2mssqlblank.py | Remplace le caractère espace (' ') par un caractère blanc aléatoire parmi un ensemble valide de caractères alternatifs |
space2mssqlhash.py | Remplace le caractère espace (' ') par un caractère dièse ('#') suivi d'un saut de ligne ('\n') |
space2mysqlblank.py | Remplace le caractère espace (' ') par un caractère blanc aléatoire parmi un ensemble valide de caractères alternatifs |
space2mysqldash.py | Remplace le caractère espace (' ') par un commentaire de tiret ('--') suivi d'un saut de ligne ('\n') |
space2plus.py | Remplace le caractère espace (' ') par un plus ('+') |
space2randomblank.py | Remplace le caractère espace (' ') par un caractère blanc aléatoire parmi un ensemble valide de caractères alternatifs |
symboliclogical.py | Remplace les opérateurs logiques AND et OR par leurs homologues symboliques (&& et |
unionalltounion.py | Remplace UNION ALL SELECT par UNION SELECT |
unmagicquotes.py | Remplace le caractère de guillemet (') par une combinaison multioctet %bf%27 avec un commentaire générique à la fin (pour le faire fonctionner) |
uppercase.py | Remplace chaque caractère de mot-clé par une valeur en majuscule 'INSERT' |
varnish.py | Ajoute un en-tête HTTP 'X-originating-IP' |
versionedkeywords.py | Encadre chaque mot-clé non fonctionnel avec un commentaire MySQL versionné |
versionedmorekeywords.py | Encadre chaque mot-clé avec un commentaire MySQL versionné |
xforwardedfor.py | Ajoute un faux en-tête HTTP 'X-Forwarded-For' |
Configuration instantanée disponible pour l'évaluation des vulnérabilités et les tests de pénétration. Exécutez un pentest complet de n'importe où avec plus de 20 outils et fonctionnalités allant de la reconnaissance au reporting. Nous ne remplaçons pas les pentesteurs - nous développons des outils personnalisés, des modules de détection et d'exploitation pour leur donner du temps pour creuser plus profondément, ouvrir des shells et s'amuser.
Last updated