Tengo algo de tiempo libre, así que estoy probando varias máquinas locales vulnerables. En una máquina de laboratorio en particular, primero debe obtener el panel de administración, y luego usar el comando "insertar" disponible y escribir un archivo de texto en el directorio. El servicio en segundo plano está comprobando el archivo escrito.
Encontré la contraseña del panel de administración pero no utilizando la inyección SQL sobre la instrucción SELECT, sino conectándome a una red con un puerto que resuelve el nombre de usuario y la contraseña. Ahora, por lo que sé, si hubiera una vulnerabilidad de inyección SQL sobre SELECT, podría INGRESAR fácilmente una columna particular al archivo de datos, pero esta vez, tendré que usar INSERTAR, ya que la entrada se envía a través del panel de administración al Consulta mysql. Estoy interesado en que exista un comando o carga equivalente a INTO OUTFILE utilizando INSERT o de otra manera. Estoy pensando en usar MySQL LOAD DATA pero no puedo ajustar mi cabeza alrededor de él.
La llamada se hará así:
LOAD DATA INFILE 'foo.txt' INTO TABLE t FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES (name, address, city, @skip, state, @skip, ...) [ SET col = <expr>, ... ]
Una cosa más, cargué exitosamente el archivo del sistema de archivos usando load_file ('nombre de archivo'), por lo que he otorgado una cuenta de usuario al menos para leer.
Otra información:
Máquina : Linux RS x11 CERT UTIC (Laboratorio de pruebas)
Base de datos : MySQL 5.x
Aplicación idioma : PHP
Gracias y un cordial saludo.