![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Pero si la consulta es un SELECT, ¿cómo podría inyectarle algo que borre?
// Saludos |
|
#2
|
||||
|
||||
|
Cita:
__________________
Saludos Emilio |
|
#3
|
|||
|
|||
|
Hola
Como poderse se pueden hacer muchas cosas, por ejemplo: Tenemos el siguiente select: Código PHP:
Código PHP:
De esta misma forma se podría obtener información de las bases de datos y tablas con SHOW DATABASES, pero igualmente debemos conocer la estructura de la consulta y que el código permita desarrollar la consulta modificada.. El mayor problema que podemos tener es que se incluya una comilla simple en nuestra búsqueda con lo que probocaremos un error en la consulta. Existen muchas funciones para filtrar los parametros mandados por formularios como pueden ser "AddSlashes" y "strip_tags" para evitar algún tipo de código HTML o PHP. |
|
#4
|
||||
|
||||
|
Hola,
Cita:
|
|
#5
|
||||
|
||||
|
¿Que no es lo mismo que dice kayetano? Él usa isset() igual que tú para asegurarse que exista la entrada 'buscar' en el arreglo asociativo $_POST. La otra parte de tu condición es la que él omite pues <<si el usuario busca un espacio en blanco ... pues que lo busque>>.
// Saludos |
|
#6
|
||||
|
||||
|
Hola,
Pues así debe ser Román. No debí leer bien. De hecho así fue, y, bueno, me confundí a lo que se ve. ![]() Última edición por dec fecha: 29-07-2006 a las 04:17:19. |
|
#7
|
|||
|
|||
|
Con respeto a lo de borrar datos, segun la version de mysql, segun como este configurada, y segun el usuario de conexion tenga mas o menos privilegios, se podria injectar junto con el sql normal un segundo sql que haga un:
delete from la_Tabla_que_sea o peor todavia un: drop database nombre_de_la_Base_de_datos Efectivamente hay que saber el nombre de una tabla o el nombre de la base de datos, pero si el php muestra los errores, podemos averiguar el nombre de la base de datos o de distintas tablas, simplemente injectando previamente cualquier texto que fuerce un error de sintaxis en la sentencia sql para que la pagina web muestre los errores en pantalla que suelen dar pistas o incluso mostrar los selects. Es comun en la configuracion de muchos servidores que no esten anulados los mensajes de error (cosa bastante mala para la seguridad), a todo el mundo le habra pasado de ir a alguna pagina web, estar el servidor de mysql caido o algun otro error y que nos salga un mensaje del tipo, "cannot connect to database la_que_Sea" o "Sintax error in Sql etc,etc". Estos errores pueden dar demasiada informacion sobre nombre de la base de datos, nombres de tablas, etc, por eso deberian estar anulados en servidores publicos. Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Como Creo una Consulta SQL | esimon | SQL | 4 | 08-02-2006 17:33:52 |
| vista parametrizada | tgsistemas | SQL | 4 | 30-11-2005 18:06:57 |
| ¿Como realizo una consulta? | majosf | Conexión con bases de datos | 4 | 17-06-2005 20:55:41 |
| como consulta a 3 tablas? | Ryu | SQL | 4 | 26-04-2005 15:15:14 |
| consulta parametrizada | rebollo75 | SQL | 2 | 18-11-2004 17:53:52 |
|