1 / 21

ProtegeIT! Web Security

HOL-PIT04. ProtegeIT! Web Security. Pedro Laguna plaguna@informatica64.com. Agenda. Introducción SQL Injection SQL Injection básico SQL Injection en base a errores Blind SQL Injection Blind SQL Injection en base a tiempos / Consultas pesadas XPath Injection / Blind XPath Injection

aoife
Télécharger la présentation

ProtegeIT! Web Security

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HOL-PIT04 ProtegeIT!Web Security Pedro Laguna plaguna@informatica64.com

  2. Agenda • Introducción • SQL Injection • SQL Injection básico • SQL Injection en base a errores • Blind SQL Injection • Blind SQL Injection en base a tiempos / Consultas pesadas • XPath Injection / Blind XPath Injection • LDAP Injection / Blind LDAP Injection

  3. Agenda • Ejecución de código de lado del cliente • XSS • CSRF • Ejecución de código de lado del servidor • Remote File Inclusion • Local File Inclusion • Web Trojans • Paginas Flash • Google Hacking

  4. Introducción • Actualmente las paginas web son el escaparate de las empresas en internet • Son el objetivo mas atractivo para los atacantes • Las diversos lenguajes de programación y tecnologías web dan pie a múltiples maneras de atacar un servidor. • La seguridad web se basa en conocer estas técnicas y en saber como contrarrestarlas

  5. SQL Injection • La inclusión de código SQL en la aplicación puede suponer un grave riesgo de seguridad • Las variables no controladas son el principal punto de entrada de estas vulnerabilidades • Las comillas simples o dobles permiten cerrar y modificar las sentencias introducidas por el programador • Existen diferentes técnicas según el entorno con el que nos enfrentemos

  6. SQL Injection Básico • El ejemplo mas básico de SQL Injection ocurre en los campos de login • Podemos introducir SQL Injection para logearnos sin credenciales validas • SELECT * FROM usuarios FROM usuario = ‘$usuario’ AND password = ‘$password’ ‘ or ‘1’=‘1 ‘ or ‘1’=‘1

  7. SQL Injection en base a errores • Errores no controlados por el programador pueden dar información sobre la estructura de la base de datos • Los distintos motores de bases de datos dan errores mas o menos descriptivos • El lenguaje de programación también influye en la cantidad de información mostrada

  8. Blind SQL Injection • A veces la pagina no nos muestra nada cuando insertamos SQL, estamos ante un SQL Injection a ciegas • Se basa en la lógica booleana y en la variación de la pagina al introducir sentencias del tipo: • ?id= 3 AND 1=1 Cierto • ?id=3 AND 1=0 Falso • Permiten extraer toda la información de la base de datos a base de hacer preguntas de Verdadero y Falso • Son muy lentas, aunque técnicas de reducción de charset permiten aligerarlas

  9. Blind SQL Injection en base a tiempos / Consultas pesadas • A veces no se producen diferencias entre las paginas de verdadero y falso • Podemos obligar al motor de base de datos para que detenga la ejecución de la consulta durante un periodo de tiempo apreciable • A partir de entonces no comprobaremos cambios en la aplicación web, si no que mediremos tiempos de respuesta • Dependiendo del motor de base de datos lograremos el retraso de una manera distinta

  10. XPath Injection / Blind XPath Injection • XPath es una técnica que permite consultar ficheros XML de una manera rápida y eficiente • Puede ser usado para almacenar información importante como usuarios y contraseñas • Al igual que en SQL podemos introducir parámetros modificados para generar una consulta siempre verdadera (equivalente al ‘ or ‘1’=‘1 en SQL Injection) • Blind XPath Injection es la técnica por la cual podemos llegar a extraer toda la información de un fichero XML consultado mediante XPath

  11. LDAP Injection / Blind LDAP Injection • LDAP es un protocolo que permite acceder a información almacenada en forma de árbol • Al igual que las técnicas anteriores podemos generar parámetros modificados de tal manera que permitan la extracción de información sensible • Mediante Blind LDAP Injection podemos acceder a esta información sin necesidad de que la aplicación muestre por pantalla los datos recuperados • Dependiendo del entorno nos podemos encontrar dos tipos de Blind LDAP Injection: • OR Blind LDAP Injection • AND Blind LDAP Injection

  12. XSS • XSS son las siglas de Cross Site Scripting • Es una técnica consistente en introducir código Javascript en la pagina • Existen dos tipos de XSS: • Permanente: Se guarda en la pagina y se muestra a cada persona que entre • No permanente: Se ejecuta al hacer clic sobre un enlace que contiene el código Javascript • Se pueden hacer cosas como robo de sesiones, defacements, ataques de phising o denegaciones de servicio

  13. CSRF • Esta técnica consiste en la ejecución de comandos de manera no autorizada aprovechando las credenciales de un usuario • Mediante XSS podemos simular acciones sobre elementos de una aplicación aprovechando la cookie de sesión del usuario • <img src=http://sitio.com/logout /> • Formularios creados mediante Javascript y enviados automáticamente • Existen maneras de evitarlo como por ejemplo la comprobación de la cabecera Referer

  14. Remote File Inclusion • Vulnerabilidad que permite la ejecución de código remoto en una aplicación • Es propia de lenguajes de programación interpretados, que permiten la carga de ficheros dinámicamente • include() y require() en PHP • Lo mas común es la inclusión de shells remotas que permitan el control total del servidor, como por ejemplo: • C99 • R57

  15. Local File Inclusion • La inclusión de ficheros locales puede permitir conocer la estructura de un sitio • Si el servidor esta montado sin la estructura del mínimo privilegio podemos llegar a incluir ficheros del sistema como: • /etc/passwd • /etc/hosts • C:\Windows\System32\drivers\etc\hosts • Etc. • Paginas de plantillas o de descarga son las que mas comúnmente presentan este fallo

  16. Webtrojans • La subida de ficheros a un servidor puede ser un peligro para la seguridad de nuestra aplicación • Comprobar solo la extensión del fichero a veces no es buena idea • Cabeceras y extensión han de ser confirmadas antes de copiar el fichero en nuestro sistema • Existen shells remotas listas para subir en cualquier lenguaje de programación que necesitemos

  17. Paginas Flash • No dejes hacer a un diseñador el trabajo de un programador • Muchos webmasters creen que sus paginas realizadas en flash son seguras • Los ficheros flash podemos descargarlos y modificarlos a nuestro gusto • Incluir XSS en un fichero flash no es nada complicado y si posteriormente nos dejan subirlo hará mucho daño • Los ficheros flash guardan datos en local, en el perfil del usuario, con extensión .sol

  18. Google Hacking • Google rastreara cualquier pagina que este enlazada • A veces Google llega mas lejos de lo que los administradores desearían • El fichero robots.txt permite limitar el rango de acción de los buscadores • Incluir ficheros y directorios no linkados en este fichero es una mala idea • Google permite una serie de comodines que nos permitirán refinar la búsqueda, haciendo nuestro trabajo mas eficiente

  19. Technews http://www.informatica64.com/boletines.html

  20. ¿Preguntas? • Pedro Laguna • plaguna@informatica64.com • Informática 64 S.L. • i64@informatica64.com

More Related