miércoles, 21 de noviembre de 2012

Curso básico de SQL Injection II

Técnicas básicas de inyección SQL

Vamos a adentrarnos en materia: la primera técnica de SQL injection que aprenderemos sirve para detectar que un sitio web o programa local es propenso a sufrir estos ataques.

Les explico un poco lo que vamos a hacer:

Todo programador, sin importar su nivel, debe imaginar que al momento de hacer login en un sitio web o programa, este hará una consulta a la base de datos para comprobar que el nombre de usuario y la contraseña existan y coincidan.

Basándonos en esto no es dificil que imaginemos que la consulta sería algo parecido a esto: SELECT * FROM tablausuarios WHERE usuario='loquetecleamos' AND password='loquetecleamos';

Obviamente loquetecleamos se le pasa por variable y la tabla y los campos se pueden llamar de otra forma.



Ahora imaginen que tecleamos lo siguiente: en usario tecleamos cualquier cosa como ejemplo y en contraseña solo ponemos una comilla simple ('). cuando se pasen como variables a la consullta, esta quedaría de esta manera:

SELECT * FROM tablausuarios WHERE usuario='ejemplo' AND password=''';

Fijense que de esta manera la consulta hace que password sea ", por lo que el punto y coma se convierte en parte de la contraseña y ya no marca el final de la consulta, al enviarse esta consulta modificada al servidor este arrojará un error al no poder completar la consulta.

Bueno, ¿y qué tiene esto de raro?, pues muy simple el programador seguro que no consideró esta opción y de esta forma si el usuario no existe nos mandaría un mensajito o algo por el estilo, si nos arroja un error entonces quiere decir que nuestra modificación funcionó y el sitio web es vulnerable a sql injection.

Bien esto es todo por esta entrada, en la próxima hablaremos de como obtener acceso a una cuenta mediante estas técnicas.

Espero tus comentarios sobre si esta clara la explicación y es de fácil comprensión.

Nos leemos luego!!!.

Happy Hacking!!!!

No hay comentarios:

Publicar un comentario