Foros del Web » Programando para Internet » PHP »

Duda con magic_quotes_gpc y CHAR

Estas en el tema de Duda con magic_quotes_gpc y CHAR en el foro de PHP en Foros del Web. Buenas gente, Tengo magic_quotes_gpc en ON y en el script tengo una variable sin quotear, es decir, vulnerable a un SQL injection. Existe alguna forma ...
  #1 (permalink)  
Antiguo 24/03/2006, 16:15
Avatar de ElMoRsA  
Fecha de Ingreso: julio-2002
Mensajes: 56
Antigüedad: 15 años, 5 meses
Puntos: 0
Duda con magic_quotes_gpc y CHAR

Buenas gente,

Tengo magic_quotes_gpc en ON y en el script tengo una variable sin quotear, es decir, vulnerable a un SQL injection. Existe alguna forma de bypassear la proteccion. Por otro lado estoy haciendo un SELECT INTO DUMPFILE y decidi probar con CHAR para ver si podia bypassear magic_quotes_gpc:

SELECT CHAR(124,122,110,100) INTO DUMPFILE 'dump.txt'

Como pueden ver, CHAR lo pude aplicar en parte del statement (el source de arriba funciona perfectamente), pero en el caso del argumento que le pasa el filename, es decir, para 'dump.txt' no ha funcionado. Queria saber si existe alguna solucion a esto. Tengan en cuenta que magic_quotes_gpc esta en ON, pero la variable que uso para hacer este injection esta sin quotear.

Muchas gracias.
__________________
fiberShiT TeaM
  #2 (permalink)  
Antiguo 24/03/2006, 18:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En realidad la directiva que necesitas saber su estado y/o alterarlo para evitar este problema sería:

magic_quote_runtime

La directiva "magic_quote_gpc" se refiere a todo dato que circula por los arrays superglobales $_GET, $_POST o $_COOKIE, es decir; de variables que te llegan por el URL a tus scripts .. o desde un formulario o son tomadas de cookies.

La directiva que te menciono ahora se refiere con el termino "runtime" a todo lo que se "ejecute" desde código PHP es decir .. por ejemplo de ese archivo que se pueda abrir.

Pero .. ahora tenemos otro problema .. NO es PHP quien abre tu archivo si usas esa sentencia SQL sino Mysql ... PHP sólo dispara la ejecución de esa sentencia .. pero quien abre el archivo y lo procesa es Mysql en su totalidad.

Necesitarías aplicar un "mysql_real_escape_string()" a ese archivo para "escapar" los caracteres potencialmente peligrosos. Esta función es de Mysql y tambien tienes la implementación en PHP de mismo nombre de esa función.

Por mi parte no sé como aplicar dicha sentencia SQL directamente sobre "DUMPFILE" (siempre la he visto aplicada a campos o cadenas en general .. no a un "archivo", igualmente podrías probar .. nada se pierde).

http://dev.mysql.com/doc/refman/5.0/...pe-string.html
http://dev.mysql.com/doc/refman/5.0/...cter-sets.html

En cualquier caso si quieres una solución vía SQL .. consulta en el foro de Base de datos. Las soluciones "PHP" pasarían por "pre-procesar" ese archivo para que luego lo pueda tomar como tal (archivo) Mysql con esas sentencias.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:26.