Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/04/2010, 16:38
7xtr3am
 
Fecha de Ingreso: marzo-2009
Mensajes: 73
Antigüedad: 15 años, 9 meses
Puntos: 1
Inyección SQL.

Hola, recientemente mi web fue “hackeada”, después de estar analizando la situación algunos días y ver lo que fueron capaces de hacer Y LO QUE NO, llegue a la conclusión de que avían usado inyección SQL. Lo único que pudieron hacer fue iniciar sesión, y modificar lo que se podía solo con los permisos que tenía el usuario. La página es de los dueños de unas yardas de autos y tiene un par de sucursales.

Y eso es más que obvio porque la instrucción SQL para el “login” que tenia era:
$q = "SELECT id_usuario FROM usuarios WHERE usuario='$usuario' and password='$password'";

Bueno, mi problema NO es evitar la inyeccion, eso ya lo solucione
(http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL)
(http://www.forosdelweb.com/f18/preve...on-sql-593647/)

Hice algunas pruebas y yo mismo pude violar el login de mi sitio. Simplemente en el nombre de usuario puse: ‘ or 1=1 #
Y en el password: lo que sea

Y pude entrar bien eso fue en la copia que tengo de la pagina en mi localhost. Pero al tratar lo mismo en el servidor en producción no funciono. Supongo que es por la configuración del explorador o algo asi pero por mas que le movi no le encontré.

Con el nombre de usuario y contraseña que les indique en el localhost obtuve:
SELECT id_usuario FROM usuarios WHERE usuario='' OR 1=1 #' and password='a'

Mirentras que en el servidor obtube:
SELECT id_usuario FROM usuarios WHERE usuario='\' OR 1=1 #' and password='a'

La razon por la que la inyeccion funciono el localhost y servidor no es por que automaticamente se agrega la diagonal \ en el usuario.

Bien, después de explicar todo y de que se me acabaron las ideas, mi pregunta es:
¿Cómo hicieron los hackers para entrar si el servidor automáticamente agrega la diagonal?