Un server tiene la vulnerabilidad SQL Injection, en las paginas: /1/1_6.asp, /2/2_1.asp ..etc
Como se podria resolver esta vulnerabilidad ? Muchas gracias
Un server tiene la vulnerabilidad SQL Injection, en las paginas: /1/1_6.asp, /2/2_1.asp ..etc
Como se podria resolver esta vulnerabilidad ? Muchas gracias
Creo que no tienes muy claro el que es una vulnerabilidad del tipo SQL Injection.
SQL Injection no es una vulnerabilidad, sino un tipo de vulnerabilidad, por lo que el metodo no siempre es el mismo. Es como decir, mi lampara tiene el fallo de que no enciende la bombilla, pero donde está el fallo?, en el enchufe? cable? bombilla?, hay que investigar para saber como atajarlo.
Este tipo de vulnerabilidades, como dice su título, corresponde a inyectar sentencias SQL al servidor a través de fallos en la programacion/control de errores de la página:
Ejemplo:
Para un formulario de usuario (campousuario) y contraseña (campopass). Si la pagina está preparada para dejarte pasar si encuentra un registro en la siguiente sentencia:
SELECT * FROM usuarios WHERE usuario='<valor campousuario>' AND pass='<valor campopass>'
Si no hay ningun tipo de control en los valores introducidos, podemos poner en el campousuario por ejemplo "paco" y en el campopass "lalalala' OR '1'='1'" de tal manera, que al final, hemos construido la siguiente sentencia:
SELECT * FROM usuarios WHERE usuario='paco' AND pass='lalala' OR '1'='1'
esta sentecia que hemos "inyectado" es la que nos dará el acceso a la pagina sin conocer ningun usuario/pass , ya que 1 siempre es igual a 1 y la sentencia devolvería todos los registros de la tabla (mas de uno, por lo que deja pasar)
Así para saber como aprovechar estas vulnerabilidades, no es suficiente con saber la URL, tienes que conocer el código... o tener suerte XD
Salu2
Última edición por Ktorce; 05-07-2007 a las 13:45
muchas gracias para la explicacion pero no quiero defacear la pagina solo habalr con la persoan que tiene esta pagina y decile como tiene que resolver el bug.
Salud
defacear?? xD, no he dicho nada de eso!
Dificilmente le puedes decir que arregle un bug, que no sabes donde está.
Salu2
Pues mira yo diria que el bug esta en esta parte:
This vulnerability affects: /1/1_6.asp.
The GET variable idEvento has been set to '.
Espero que se ha entendido
Vamos a ver. Por lo que veo, lo de la vulnerabilidad lo sabes por un scaneador, pero no sabes mas. Que aplicacion es? un foro? un blog?, que marca comercial?, por ejemplo, este foro es vBulletin, cual es esa?. La variable idEvento, para que se usa?, en que momento se para en la url?, que sentencia SQL se está ejecutando con el valor de esa variable?.
Con lo datos que tienes no se puede saber nada.
Salu2
Claro, como dice Ktorce se sabe que se puede incluir algo en esa variable, pero no se sabe qué se puede incluir para conseguir algo determinado. Es ir a ciegas.
Salu2
Keep on Rollin'
intento contestarte a las preguntas que se:
no es un foro. Como me doy cuenta si es un blog, o otra cosa he entendido que si es un foro esvBulletin (no todos los foros son vBulletin?).
la variable idEvent me dice que: GET /1/1_6.asp?idEvento=' HTTP/1.0, pero como me doy cuenta para que se usa el idEvent ?
tampoco lo se que sentencia SQL se esta ejecuntado con el valor de la variable. Estoy en este foro para aprender si me podeis aclarar las dudas ?
Muchas gracias
No, desde luego que no, con unos pocos elementos puedes programarte tu propio foro, vBulletin es uno de los más populares (dentro de los más competentes, porque hay más populares pero que en mi opinión no dan la talla), pero hay muchos más.
Si te dice eso ya estás viendo al menos uno de los usos. Se usa para almacenar una petición web.la variable idEvent me dice que: GET /1/1_6.asp?idEvento=' HTTP/1.0, pero como me doy cuenta para que se usa el idEvent ?
Por eso mismo sería conveniente conocer el funcionamiento del sitio en cuestión, por ahorrar mucho tiempo viendo cuáles son las peticiones relacionadas, hacer pruebas en local y luego probarlas en el servidor si procede.tampoco lo se que sentencia SQL se esta ejecuntado con el valor de la variable
Salu2
Keep on Rollin'
tampoco lo se que sentencia SQL se esta ejecuntado con el valor de la variableme podrias dejar un ejemplo para que tengo una ideea mas clara, de que sentencia podria ser ? muchas gracias
Saludos
Por el nombre de la variable (contiene la palabra "id"), lo más seguro es que sea un parámetro numérico. Y al decir la vulnerabilidad que es GET, el parametro se pasa por URL. Por lo que en alguna parte de la aplicacion (todavía no has dicho que tipo de aplicacion es) se generará una url parecida a esta, por ejemplo para el evento "7".
http://www.eldominiodelsitio.com/1/1_6.asp?idEvento=7
La sentencia SQL que podría estarse ejecutando es, por ejemplo
SELECT dato1, dato2, dato3 FROM eventos WHERE idEvento=7
Esta sentencia, devolvería el dato1...3, de la tabla eventos, que están clasificados como tipo de evento 7. Para probar que se puede inyectar SQL, por ejemplo yo probaría, cambiar la url por esta:
http://www.eldominiodelsitio.com/1/1_6.asp?idEvento=7%20or%201=1
Por lo que la sentencia SQL que resultaría sería la siguiente:
SELECT dato1, dato2, dato3 FROM eventos WHERE idEvento=7 OR 1=1
Con esto, la pagina, tal vez, muestre todos los eventos (no solo el 7), y con esto demuestras que es vulnerable a la inyeccion SQL
PD: Todo esto son supuestos, no tiene el por que funcionar, y aunque esto no funcione, no quiere decir que no sea vulnerable. Todo depende de la cantidad/calidad de controles que tenga la pagina a la hora de tratar los parámetros que se le pasen.
Salu2
Última edición por Ktorce; 10-07-2007 a las 11:08
para aprender todo esto es necesario saber el MYSQL tambien HTML ?
Y también los lenguajes en los que esten programados las páginas, ya que no sólo por la url se puede hacer la inyección, sino también en otros lugares, como por ejemplo los formularios.
Salu2
Keep on Rollin'
Marcadores