¿Cómo hacer una inyección de SQL en los tsquery de PostgreSQL?

10

Creo que hay una vulnerabilidad de inyección SQL en una aplicación que estoy probando. Esto se ve cuando ingreso parámetros con formato incorrecto en un formulario de búsqueda. Todas las excepciones se muestran en formato:

PHP raised unknown error: pg_query() [http://php.net/function.pg-query]: Query failed: ERROR: syntax error in tsquery: "query" (more details about error - in log file)

Parece que se usa la función tsquery de PostreSQL. Después de mirar en algunas situaciones como:

The Fat & Rats:C

- > ERROR: syntax error in tsquery: "the & fat & & & rats:c"

Creo que plainto_tsquery se utiliza para convertir la consulta en Formato de tsquery .

¿Hasta qué punto podría explotarse esta vulnerabilidad? ¿Es seguro usar esas funciones de PostgreSQL sin desinfección adicional?

    
pregunta Andrei Botalov 14.08.2012 - 19:06
fuente

1 respuesta

4

Mirando aquí que suena bastante similar a lo que estás viendo, esto es No utilice una inyección SQL, sino una inyección en el lenguaje de consulta utilizado en tsquery. Además de los ejemplos que pueden haber estado en una pregunta similar [cerrada], hubo algunas rarezas que no me parecieron un problema de inyección de SQL estándar.

Por no decir que no se puede explotar de alguna manera, pero es poco probable que las técnicas de inyección de SQL estándar produzcan resultados útiles.

    
respondido por el Rоry McCune 15.08.2012 - 18:27
fuente

Lea otras preguntas en las etiquetas