• No results found

seguridad_web.pdf

N/A
N/A
Protected

Academic year: 2020

Share "seguridad_web.pdf"

Copied!
70
0
0

Loading.... (view fulltext now)

Full text

(1)

Pedro Villena Fernández www.consultoriainnova.com

Seminario de

(2)

Algunas cosas antes de empezar....

– Este seminario NO tiene la intención de “piratear”

otras webs.

– Los ataques que aprenderemos NO deben probarse

en aplicaciones webs que no son nuestras.

– La única finalidad es aprender los fallos que se

(3)

INDICE

1.- Introducción

2.- Principales ataques

(4)

Introduccion

(5)

Introducción

1.-Confidencialidad. Los datos solo podrán ser modificados por aquellas personas que tengan permiso para hacerlo.

(6)

Introducción

3.-Disponibilidad. Los datos deben estar disponibles y accesibles cuando se requiera el acceso a ellos.

(7)

Introducción

(8)

Introducción

(9)

Introducción

(10)

Introducción

(11)

Introduccion

(12)

Introducción

(13)

Introducción

Open Web Application Application Security Project

– Sin fines de lucro, organización de voluntarios

– Promueve el desarrollo de software seguro

– Orientada a la prestación de servicios orientados a

la Web

– Se centra principalmente en el "back-end" mas que

en cuestiones de diseño web

– Un foro abierto para el debate

– Un recurso gratuito para cualquier equipo de

(14)

Introducción

Open Web Application Application Security Project

– Materiales de Educación

● OWASP Top 10

● Guía de Desarrollo OWASP ● Guía de Testing OWASP

● Guía OWASP para aplicaciones Web Seguras ● Muchos mas

– Software

(15)

Introducción

OWASP TOP 10:

(16)

INDICE

1.- Introducción

2.- Principales ataques

(17)

Principales ataques

(18)

Principales ataques

Principales ataques que veremos:

– SQL Injection (y Blind SQL Injection)

– Cross-Site Scripting (XSS)

– Cross Site Request Forgeries (CSRF)

– Command Execution

– File inclusion

– File upload

(19)

Principales ataques

(20)

Principales ataques

DVWA (Damn Vulnerable Web App) es un sitio web que tiene las principales vulnerabilidades.

Tiene 3 niveles de seguridad, desde LOW (lo que nunca se debe hacer), hasta HIGHT (la

implementación segura del código)

(21)

Principales ataques

(22)

Principales ataques

Se produce cuando se ejecutan consultas de SQL con datos recibidos del usuario, y estos no han sido procesados.

El objetivo principal es obtener todos los datos

posibles de la BDD, como por ejemplo contraseñas de los usuarios; o saltarse condicionales.

sql_query=

(23)

Principales ataques

Un truco que se suele utilizar, siempre que no sea Blind SQL Injection (a ciegas), es poner el

símbolo ' o “ en los campos, y ver si devuelve error.

Si esto sucediera, es casi seguro que hay un SQL Injection en esa consulta

(24)

Principales ataques

Cosas que se suelen probar siempre:

1' OR 1=1--1' OR '1=1--1' = '1 '

''

') or ('a'='a ") or ("a"="a or

a=a--

admin'' or 0=0 " or 0=0 or 0=0 --' or --'x--'=--'x " or "x"="x ') or ('x'='x

(25)

Principales ataques

(26)

Principales ataques

¿Cómo solucionar este problema?

– Si esperamos un entero, hacer casting hacia ese

tipo.

– Utilizando funciones como addclashes (de php)

– Utilizando funciones del framework que utilicemos

(27)

Principales ataques

(28)

Principales ataques

El XSS (Cross-Site Scripting) consiste en ejecutar código HTML o Javascript en la página.

Desde hace poco tiempo los navegadores interceptan muchos estos ataques: Internet Explorer, Chrome o Firefox mediante No-Script.

buscar.php?d=Busqueda

(29)

Principales ataques

Suelen existir dos tipos de XSS:

– XSS persistente: se guardan en BDD o archivos,

como por ejemplo en un nombre de usuario o mensaje de un foro.

– XSS reflejado: el XSS suele estar incrustado en la

(30)

Principales ataques

¿Qué pasa si caemos en un XSS?

– Robo de sesión

– Phising

– Escaneo de puertos de intranet

(31)

Principales ataques

(32)

Principales ataques

¿Cómo solucionar este problema?

– Eliminando todas las etiquetas html, con funciones

como strip_tags

– Parseando los elementos html, y pasandolos a

(33)

Principales ataques

(34)

Principales ataques

Muchos sitios webs realizan acciones mediante

llamadas a URL. Aquí es donde se podría ejecutar un CSRF (Cross-Site Request Forgery)

Si enviamos esta URL a una víctima y hace clic en ese enlace, estará cambiando la contraseña sin ser consciente de ello.

(35)

Principales ataques

Para poder realizar este ataque, tenemos que

comprobar que los parámetros se puedan recibir por medio de GET.

(36)

Principales ataques

¿Cómo solucionar este problema?

– Insertando un token en el formulario, para que

vaya cambiando y no sea siempre el mismo.

(37)

Principales ataques

(38)

Principales ataques

Hay veces que las páginas web tienen que acceder a comandos del sistema, y necesitan obtener algún

parámetro por parte del usuario:

En el ejemplo anterior vamos a hacer un ping a una IP, pero como no se ha parseado correctamente la llamada, podemos poner un “&& ls” y nos

<?php

(39)

Principales ataques

(40)

Principales ataques

Algunas de las funciones que más posibilidades tiene de sufrir Command execution son:

Habría que utilizar operadores como “&” o “|” para lanzar un segundo comando.

exec() passthru() shell_exec()

(41)

Principales ataques

¿Cómo solucionar este problema?

– Validando los datos.

– Limitando los caracteres

(42)

Principales ataques

FILE

(43)

Principales ataques

Este ataque se da cuando incluimos ficheros

ejecutables directamente por URL o por POST.

Se pueden distinguir dos tipos:

– LFI (Local File Inclusion): Incluyendo ficheros del

propio servidor.

– RFI (Remote File Inclusion): Incluyendo ficheros

de otro servidor.

(44)

Principales ataques

(45)

Principales ataques

(46)

Principales ataques

¿Cómo solucionar este problema?

– Comprobando que el archivo sea local y exista en

nuestro servidor.

– Eliminando caracteres como “.” y “/”.

(47)

Principales ataques

(48)

Principales ataques

Consiste en engañar al sistema para subir un archivo distinto al esperado, o subirlo en una ruta totalmente diferente.

Si se consigue la capacidad de subir ficheros, lo normal es subir una web shell como la C99.

(49)

Principales ataques

Si esto se consigue, el atacante tendrá acceso directo al sistema.

Si se consigue cambiar la ruta de subida de ficheros, pero no se pueden subir archivos ejecutables (por

(50)

Principales ataques

¿Cómo solucionar este problema?

– Comprobando además de la extensión del fichero,

su tipo (ya que se puede saltar esa comprobación)

– Filtrando que el nombre de fichero no tenga “..” ni

(51)

Principales ataques

(52)

Principales ataques

Consiste en probar millones de contraseñas hasta dar con la contraseña que buscamos.

(53)

Principales ataques

(54)

Principales ataques

¿Cómo realizar un bruteforce?

(55)

Principales ataques

¿Cómo solucionar este problema?

– Mostrando un captcha después de X intentos

– Bloqueando la IP después de fallar X veces

(56)

INDICE

1.- Introducción

2.- Principales ataques

(57)

Fingerprinting

(58)

Fingerprinting

Buscaremos los siguientes datos:

– ¿Qué aplicaciones web corren?

– ¿Y en qué versiones?

– ¿Hay rutas o archivos que pudieran considerarse

como sensibles?

(59)

Fingerprinting

Identificando el servidor web

– Mediante las cabeceras que devuelve (utilizando

(60)

Fingerprinting

Identificando el servidor web

– Mediante los errores que se devuelven. Muchas

(61)

Fingerprinting

Identificando el servidor web

– ¡Cuidado! Esta información se puede engañar para

mostrar resultados erróneos:

● Se pueden modificar las cabeceras para poner que un

Apache es en realidad un IIS

● Se pueden cambiar las páginas de error por las de

(62)

Fingerprinting

Obteniendo el tipo de aplicación:

– Mirando el código html. La mayoría de los CMS o

(63)

Fingerprinting

Obteniendo el tipo de aplicación:

– Mirando la estructura de carpetas. Teniendo un

poco de conocimientos sobre plataformas

(64)

Fingerprinting

Obteniendo el tipo de aplicación:

– Probando a buscar el backend, ya que suele tener el

logotipo de la plataforma:

● /administrator ● /admin

● /wp-admin

(65)

Fingerprinting

Una vez que se sepa la plataforma, hay que averiguar la versión.

– Podemos ir mirando el checksum (md5 de

archivos) que se suelen modificar a lo largo de versiones.

– Se suele hacer una base de datos con estos md5

para agilizar el proceso.

(66)
(67)

Introduccion

¿Por qué ocultar

(68)

Fingerprinting

Existen númerosas vulnerabilidades en las aplicaciones sin actualizar.

Muchas veces, aunque la plataforma este

actualizada, salen fallos y tardan varios dias en solucionarse.

(69)
(70)

References

Related documents

The simple behavior observed for the reductive desorption of alkanethiol SAMs becomes more complex when aromatic or heterocyclic thiols are included in the same

Syndrome Nephrosclerosis Nephritis, Interstitial Atrioventricular Block Coronary Vasospasm Cardiomyopathy, Hypertrophic, Familial Myocardial Infarction Myofascial Pain

Like the start of the intermezzo, the accompaniment provides a tonal accent at the downbeat of the trio’s first measure, but the onset of the melody’s hemiola at the downbeat of

instead, refers to the case in which economic agents are assumed to start the sample with an initial belief that global output does not affect domestic variables (rather than

The government has officially defined the Malaysia Homestay Programme on its website as follows: “The Homestay Programme gives visitors the opportunity to stay with a

After each visit and interview, a story was crafted in accordance with criteria of true writing analysis and narrative journalistic storytelling, using verbatim transcripts

For each reference signal of the recorder, either of an external reference video signal (*3) or input video signal (*4) is automatically selected according to the setting of