Usando INTO OUTFILE con INSERT

2

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.

    
pregunta sensation 17.02.2015 - 01:00
fuente

1 respuesta

1

Al consultar la sintaxis de selección de MySQL , puede ver que admite into outfile al final de una consulta. Si observa Sintaxis de inserción de MySQL , verá que no hay ninguna referencia a %código%. Hay una buena razón para esto, insert está modificando la base de datos, y una selección está obteniendo datos, y into outfile es un modificador de a dónde van esos datos. Desde la perspectiva de un desarrollador, no hay razón para darle la posibilidad de escribir en archivos.

Sin embargo, no todo está perdido. La capacidad de insertar datos abre la puerta para inyección de código de segundo orden .

    
respondido por el rook 17.02.2015 - 15:56
fuente

Lea otras preguntas en las etiquetas