viernes, 13 de junio de 2014

Encontrando SQLI

El día de ayer se me dio por salir a algun lugar asi que hice una búsqueda en google a ver si había alguna opción buena , llegue a una sitio web y  lo primero que note fue esto




Como pueden darse cuenta , el sitio web  recibe dos variables (id_idioma , m)  por  la url  , lo primero que pensé es "Estando ya en el año 2014 es casi imposible que no hayan puesto una protecion para SQLI"  , pero como no quería quedarme con la duda asi puse en practica el truco mas antiguo para detectar un SQLI , poner una comilla al final .


Como pueden darse cuenta la pagina imprime Consulta no valida  cuando detecta un error en la sintaxis en una consulta SQL ( al parecer una la función mysql-error de php ) , obviamente no me rendí  sino que seguí intentando esta vez probé el metodo de SQL BLIND , añadiendo lo siguiente al final  AND 1=1 , si era vulnerable  debia mostrarme la pagina sin ningun cambio



en ese entonces parecía que la pagina web era vulnerable pero para estar 100% seguro introduje lo siguiente al final AND 1=0





como pueden ver carga el encabezado ,  el pie de pagina , pero no la parte del centro , con eso confirme que era vulnerable a SQLI BLIND y ahora toca explotar la vulnerabilidad para sacar algo de informacion , para ello añadi la sentencia AND (SELECT(COUNT(*)) FROM admin);   al final para comprobar si la tabla admin , existe.



Como pueden ver carga toda la pagina , lo que quiere decir la tabla admin si existe , después procedí a sacar mas datos pero esta vez usando SqlMap el como me fue , lo contare en otra entrada.
Con esta entrada he querido que se den cuenta que no basta con filtrar algunos caracteres , o con la function mysql-error de php , para protegerse de SQLI .

Tutorial basico de SQLI www.antrax-labs.org/2012/01/sql-injection-desde-cero.html

Hasta la proxima y nunca olviden que todo es tan difícil antes de ser sencillo.