Documente Academic
Documente Profesional
Documente Cultură
Vulnerabilidades
Análisis de vulnerabilidades
• Automatizada
• Manual
2
Análisis de vulnerabilidades
Automatizada
• Categorías:
– Scanner a nivel aplicación.
– Scanner a nivel sistema.
3
Herramientas
Scanner a nivel de sistemas
www.gfi.com www.rapid7.com
www-arc.com/sara/
IBM : www.iss.net www.nessus.org
4
Herramientas
Scanner a nivel de aplicación
5
Nessus : Arquitectura
O
B
browser
J
U
nessusd A
http server 6 R
Nessus : Instalación
•Instalación única
Seleccionar “Nessus-XXX_???.YYY” (i386/amd64)
Registrarse para envió de código de activación
Disponible para todos los sistemas Unix y MS Windows
Instalar archivo descargado.
SCAN-ERROR
Too many live hosts scanned in a row while on a
HomeFeed - please upgrade to a ProfessionalFeed
Nessus ID : 19506
Reducing max_hosts to 16 (HomeFeed)
7
Nessus : Instalación
8
Cliente Nessus
9 9
Nessus : Ejecución
• Servidor
/etc/init.d/nessusd start
• Cliente
– https://127.0.0.1:8834/
10
Nessus y nmap
14
Introducción a las
Vulnerabilidades Web
Explicación en clase utilizando Damn
Vulnerable Web Application
http://www.dvwa.co.uk/
15
SQL Injection
Recuerdos...
17
Qué es SQL Injection?
18
Conceptualmente
Una sentencia SQL típica, suele tener el siguiente aspecto:
Restringiendo el Resultado
19
Un Login...
Query String
20
Comilla Simple o Apóstrofe
Username: Angel
Password: 338XD
sql = "SELECT * FROM users WHERE username = '" + username + "' AND
userpass = '" + password + "'"
21
Comilla Simple o Apóstrofe
Username: An’gel
Password: 338XD
23
Login Bypass con Sqli
Objetivos:
requerimientos de autenticación.
Inyectando lógica SQL, en los campos de usuario y contraseña del
formulario.
Algunas opciones:
' or 1=1 -- Admin' -- ' or ''='' --
24
Login Bypass con Sqli
Por que la inyección de este código debería funcionar?
' or 1=1 --
SELECT * FROM users WHERE username = '' or 1=1 -- ' AND userpass =''
Admin' --
' OR ''='' --
SELECT * FROM users WHERE username = '' OR ''='' -- AND userpass =''
25
Demo
“Autenticandose”
26
Un ejemplo más dañino
• No solamente visualizar :
– blah‘; DROP TABLE prodinfo; --
• Resulta en :
– SELECT prodinfo FROM prodtable WHERE prodname = ‘blah’; DROP TABLE
prodinfo; --’
– E (--) marca el final de la setencia
• Toda la tabla borrada
– Se requiere haber obtenido el nombre de la tabla
– Casi siempre, se obtiene de los mensajes de error
27
SQL Injection : Ciega o Blind
Se han analizado inyecciones normales (basadas en
mensajes de error, visibles, “in-band”) que muestran
los resultados facilmente en las respuestas HTML de
la aplicación.
Sin embargo, existen otras denominadas
“ciegas” porque los errores de la base de
datos y resultados de los inyecciones no son
mostrados en las respuestas de la aplicación.
Sí : variable=1 and 1=1 -- muestra una
página diferente a variable=1 and 1=0 --,
entonces, existe la vulnerabilidad.
28 28
SQL Injection : Ciega o Blind
29
SQL Injection : Ciega o Blind
30
CtF 5 : SQLi to the max!
• ACME tiene un web lleno de contenido y una base de datos que espera ser
vulnerada
• Puntaje : 10 Puntos G.
31
CtF 6 : Tampering y webshell
• Realizar un descubrimiento de directorios web, hallar la aplicación de
• Use la opción de subir planillas para lograr subir una webshell que permita la