Red de conocimientos turísticos - Información de alquiler - Acerca de una vulnerabilidad en php

Acerca de una vulnerabilidad en php

ejemplo de extracto()

lt;?php

$size = "large";

$var_array = array("color" =gt; "blue" ,

"tamaño" =gt; "medio",

"forma" =gt;

extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size\n"; gt

El ejemplo anterior generará:

azul, grande, esfera, mediano

EXTR_OVERWRITE

Sobrescribe las variables existentes si hay un conflicto.

EXTR_SKIP

Las variables existentes no se sobrescriben si hay un conflicto.

EXTR_PREFIX_SAME

Si hay un conflicto, anteponga el nombre de la variable.

EXTR_PREFIX_ALL

Prefija todos los nombres de variables con un prefijo, agregado desde PHP 4.0.5 para manejar la indexación numérica.

EXTR_PREFIX_INVALID

Prefije solo nombres de variables numéricas/ilegales. Esta bandera se agregó después de PHP 4.0.5.

EXTR_IF_EXISTS

Solo sobrescribe variables con el mismo nombre que ya existen en la tabla de símbolos actual. Todas las demás variables no se procesan. Se puede utilizar cuando ha definido un conjunto de variables legales y luego anula estas variables extrayendo valores de una matriz (como $_REQUEST). Esta etiqueta es nueva en PHP 4.2.0.

EXTR_PREFIX_IF_EXISTS

El nombre de la variable de prefijo se creará solo si ya existe una variable con el mismo nombre en la tabla de símbolos actual; de lo contrario, no se creará. Esta etiqueta es nueva en PHP 4.2.0.

EXTR_REFS

Extrae variables como referencias. Esto sugiere fuertemente que la variable importada todavía hace referencia al valor del parámetro var_array. Esta etiqueta se puede utilizar sola o con otras etiquetas en extract_type. Esta etiqueta es nueva en PHP 4.3.0.

Si no se especifica extract_type, se asume EXTR_OVERWRITE.

Agregue "@" antes de la declaración para enmascarar el error de salida actual. Por ejemplo, si hay un error en $MOD aquí que debería mostrarse o el programa finaliza, entonces el programa omitirá el error y continuará sin mostrar el error.

La función de plantilla aquí debe ser un procesador de plantillas. La existencia de una vulnerabilidad de inclusión de archivos depende del análisis de esta función y de los parámetros de configuración de php del servidor.

Esta vulnerabilidad es casi imposible que ocurra aquí porque no hay forma de asignar desde el exterior excepto Register_global=en el cual puede estar presente $MOD. Si la función de la plantilla no es estricta al verificar la ruta del archivo, como usar mod directamente, puede aparecer global = on, a menos que al mismo tiempo el servidor permita archivos remotos que estén activados si la plantilla detecta estas dos condiciones de configuración. no es estricto y aparece al mismo tiempo, puede ser una vulnerabilidad, pero la probabilidad de que esto ocurra es extremadamente baja

Esta es la primera vez que se descubre una vulnerabilidad en un servidor.