use load_file en la inyección

2

Soy un probador de penetración y estoy trabajando en un nuevo sitio web que es vulnerable a través de la inyección de SQL. Este sitio se inyecta con esta carga útil:

?id=3333' union select 1,2,3,4 --+

La cuarta columna de la segunda selección devuelve en respuesta.

Además, estoy seguro de que "db.php" está presente en esta ruta:

"var \ www \ vhosts \ mySite.com \ httpdocs \ lib \ db.php"

Pero no puedo leer el contenido de "db.php" con esta inyección:

?id=3333' union select 1,2,3,load_file('var\www\vhosts\mySite.com\httpdocs\lib\db.php')

¿Qué pasa con esta carga útil? Y DB es MySQL.

    
pregunta psby 30.10.2016 - 15:00
fuente

2 respuestas

2

Según lo ordenado, la parte faltante era privilegios de archivos. Según la documentación de LOAD_FILE, el usuario que ejecuta la consulta debe tener privilegios de archivo más que en el nivel del sistema de archivos, el archivo debe permitir las acciones realizadas por la consulta

LOAD DATA INFILE
  1. Por razones de seguridad, al leer archivos ubicados en el servidor, Los archivos deben residir en el directorio de la base de datos o ser legibles por La cuenta de usuario utilizada para ejecutar el servidor.

  2. Para usar LOAD DATA INFILE en los archivos del servidor, debe tener el ARCHIVO     privilegio.

  

CARGAR DATOS LOCALES

El uso de LOCAL es un poco más lento que permitir que el servidor acceda directamente a los archivos, ya que el contenido del archivo debe enviarse a través de la conexión del cliente al servidor.

Por otra parte, no necesita el privilegio de ARCHIVO para cargar archivos locales.

    
respondido por el 8zero2.ops 31.10.2016 - 08:31
fuente
0

La observación también puede ocurrir en las versiones Mysql > = 5.7.6 si se establece el parámetro --secure-file-priv cuando se compiló mysql para la plataforma.

Consulte la explicación oficial de este parámetro aquí

Debido a que este parámetro se está configurando, load_file, dumpfile, outfile comandos no podrán realizar su función respectiva. Si se muestran errores de mysql en el navegador, al intentar usar "into dumpfile" en un directorio no permitido por el parámetro --secure-file-priv se indicará que se intentó escribir un archivo fuera de --secure-file- Directorio priv que no está permitido.

Tenga en cuenta que el valor predeterminado de --secure-file-priv depende de la plataforma. Para restablecer el directorio --secure-file-priv, eche un vistazo a este post que describe el caso de una instalación MYSQL en Ubuntu.

    
respondido por el John 13.11.2016 - 04:12
fuente

Lea otras preguntas en las etiquetas