Injected SQL : Para el que quiera comprender esta tecnica de ataque...
Página 1 de 1.
Injected SQL : Para el que quiera comprender esta tecnica de ataque...
Buenas, para este post les dejo el siguiente tutorial:
¿Qué es la Inyección de SQL?
La inyección de SQL es una técnica de inyección de código que explota una vulnerabilidad de seguridad dentro de la capa de base de datos de una aplicación. Esta vulnerabilidad puede encontrarse cuando la entrada del usuario se filtra de forma incorrecta debido a caracteres de escape embebidos en sentencias SQL.
Aunque la inyección de SQL se utiliza en su mayoría para atacar sitios web, puede también ser usado para atacar cualquier base de datos SQL. En el último año, una empresa de seguridad informó que una aplicación web media es atacada al menos cuatro veces al mes por técnicas de inyección de SQL. Los distribuidores en internet reciben más ataques que cualquier otra industria con una presencia online.
Escogiendo un Blanco
El primer paso para realizar un ataque por inyección de SQL es encontrar un sitio web vulnerable. Este es seguramente el proceso que consume más tiempo de todo el ataque. Más y más páginas web se están protegiendo de las inyecciones SQL por lo que encontrar un objetivo vulnerable puede llevar algún tiempo.
Una de las formas más sencillas de encontrar sitios vulnerables se conoce como Google Dorking. En este contexto, un dork es una consulta de búsqueda específica que encuentra sitios web que cumplen los parámetros de la consulta avanzada que introduces. Algunos ejemplos de dorks que puede usar para encontrar sitios vulnerables de un ataque por inyección de SQL son:
inurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:declaration_more.php?decl_id=
inurl:pageid=
inurl:games.php?id=
inurl:page.php?file=
inurl:newsDetail.php?id=
inurl:gallery.php?id=
inurl:article.php?id=
inurl:show.php?id=
inurl:staff_id=
inurl:newsitem.php?num= andinurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:declaration_more.php?decl_id=
inurl:pageid=
inurl:games.php?id=
inurl:page.php?file=
inurl:newsDetail.php?id=
inurl:gallery.php?id=
inurl:article.php?id=
inurl:show.php?id=
inurl:staff_id=
inurl:newsitem.php?num=
Por supuesto, hay muchos otros también. El componente clave de estas consultas de búsqueda específicas es que todas ellas se centran en sitios web que se basan en scripts PHP para generar contenido dinámico de una base de datos SQL en algún lugar del backend del servidor. Puede aprender más sobre PHP con este curso sobre Fundamentos de programación en PHP.
Recuerde que el ataque por inyección SQL puede funcionar en cualquier base de datos SQL, pero las páginas web basadas en PHP son sus mejores objetivos porque pueden configurarse por todo el mundo (p.e. WordPress) y a menudo contienen mucha información valiosa sobre clientes dentro de la base de datos que intenta atacar.
Sin embargo, sólo porque Google le devuelta un resultado usando esos dorks no significa que sea vulnerable al ataque. El siguiente paso es probar cada sitio web hasta encontrar uno que sea vulnerable.
Navegue a uno de esos sitios web que ha encontrado. Por este ejemplo, supongamos que uno de los resultados de búsqueda ha sido http://www.udemy.com/index.php?catid=1. Para averiguar si este sitio es vulnerable a la inyección SQL, simplemente añada un apóstrofe al final de la URL así:
http://www.udemy.com/index.php?catid=1’
Pulse enter y vea lo que hace el sitio. Si la página devuelve un error SQL, el sitio web es vulnerable a técnicas de inyección SQL.
En este punto, entender SQL es incluso más importante ya que empezará a manipular la base de datos directamente desde la página vulnerable. Puede comenzar a practicar su SQL por ejemplo, con una base de datos Access. Este curso Bases de Datos con Microsoft Access 2013 le ayudará a diseñar tablas y ejecutar consultas y mucho más.
Comenzando el Ataque
Después de localizar un sitio vulnerable, necesita averiguar cuántas columnas existen en la base de datos y cuántas de esas columnas son capaces de aceptar sus consultas. Añada una sentencia order by a la URL así:
http://www.udemy.com/index.php?catid=1 order by 1
Continúe aumentando el número detrás del “order by” hasta que devuelva un error. El número de columnas de la base de datos es el mayor número que pudo obtener antes de recibir el error. También necesita averiguar qué columnas aceptan consultas.
Puede hacer esto añadiendo una sentencia “Union Select” a la URL. Una sentencia union select en esta URL se parecería a esto:
http://www.udemy.com/index.php?catid=-1 union select 1,2,3,4,5,6
Hay un par de cosas a tener en cuenta en este ejemplo. Antes del número uno (después de catid), necesita añadir un guión (-). Además, el número de columnas que descubrió en el paso anterior es el número de dígitos que debe poner después de la sentencia union select. Por ejemplo, si descubrió que la base de datos tiene 12 columnas, debería añadir:
catid=-1 union select 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Los resultados de esta consulta corresponderá a los números de columna que aceptan consultas. Puede elegir cualquiera de estas columnas para inyectar sus sentencias SQL.
Este foro esta dedicado a entender una tecnica para la vulnerabilidad de tu WEB. QUeda bajo su responsabilidad el uso de esta informaciòn. Recuerde que hackear puede ser divertido pero no se debe infringir la ley.
Saludos..
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.