• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introducción a las vulnerabilidades web
 

Introducción a las vulnerabilidades web

on

  • 1,347 views

Charla de introducción a las vulnerabilidades web para el UNI Encounter 2013 organizado por UNI Eibar-Ermua.

Charla de introducción a las vulnerabilidades web para el UNI Encounter 2013 organizado por UNI Eibar-Ermua.

Statistics

Views

Total Views
1,347
Views on SlideShare
1,347
Embed Views
0

Actions

Likes
0
Downloads
26
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introducción a las vulnerabilidades web Introducción a las vulnerabilidades web Presentation Transcript

    • UNI Encounter 2013Eibar-ErmuaPablo Garaizar SagarminagaUniversidad de DeustoINTRODUCCIÓN A LASVULNERABILIDADES WEB
    • ¿De qué vamos a hablar?● OWASP Top 10, 2013 (release candidate).● A1 - Injections● A2 - Broken Authentication and Session Management● A3 - Cross-Site Scripting (XSS)● …● Cómo aprender seguridad web.● HTML5 y CSS3: ataques novedosos.
    • OWASPThe Open Web Application Security Projecthttps://www.owasp.org/index.php/Main_Page
    • OWASP Top 10, 2013(release candidate)
    • A1 - InjectionSQL, OS, and LDAP injectionshttps://www.owasp.org/index.php/Top_10_2013-A1
    • SQL InjectionHa ido evolucionando mucho con los años● 1998 rain.forest.puppy, "NT Web Technology Vulnerabilities". Phrack Magazine Vol.8, Issue 54.● 1999 rain forest puppy, "How I Hacked PacketStorm. A look at hacking wwwthreadsvia SQL". Advisory RFP2K01, rfp.labs.● 2001 David Litchfield, "Web Application Disassembly with ODBC Error Messages",NGS Software.● 2002 Chrish Anley, "Advanced SQL Injection", "(more) Advanced SQL Injection",NGS Software.● 2002 Cesar Cerrudo, "Manipulating Microsoft SQL Server using SQL Injection".Application Security.● 2003 Kevin Spett, "Blind SQL Injection", Spi Dynamics.● 2003 Ofer Maor, Amichai Shulman, "Blindfolded SQL Injection", Imperva.
    • SQL InjectionHa ido evolucionando mucho con los años● 2004 Ofer Maor, Amichai Shulman, "SQL Injection Signatures Evasion", Imperva.● 2004 Cameron Hotchkies, "Blind SQL Injection Automation Techniques", BlackHatConferences.● 2005 David Litchfield, "Data-mining with SQL Injection and Inference", NGS Software.● 2007 David Litchfield, "Cursor Injection", NGS Software.● 2008 David Litchfield, "Lateral SQL Injection: A new Class of Vulnerability in Oracle", NGSSoftware.● 2008 Chema Alonso, José Parada. "Time-Based Blind SQL Injection using heavy queries: Apractical approach for MS SQL Server, MS Access, Oracle and MySQL databases andMarathon Tool". Informática64, Microsoft.● 2009 Daniel Kachakil, "Select for XML SQL Injection. Fast data extraction using SQLinjection and XML statements", (dani@kachakil.com)● ...
    • SQL InjectionPor una comilla de nada...sql = "SELECT * FROM users WHERE user = " + userName + ";";userName -> or 1=1SELECT * FROM users WHERE user = OR 1=1;userName -> ;DROP TABLE users;--SELECT * FROM users WHERE user = ;DROP TABLE users;--userName -> ;SELECT * FROM data WHERE name LIKE %SELECT * FROM users WHERE user = ;SELECT * FROM data WHERE nameLIKE %;
    • SQL InjectionPor una comilla de nada...http://es.xkcd.com/strips/exploits-de-una-madre/
    • DEMOphpBB2 modificado
    • SQL InjectionCampos sin comillas (numéricos):sql = "SELECT * FROM users WHERE id = " + userID + ";";userID -> 1 OR 1=1SELECT * FROM users WHERE id = 1 OR 1=1;userID -> 1;DROP TABLE usersSELECT * FROM users WHERE id = 1;DROP TABLE users;userID -> 1; SELECT * FROM data WHERE name LIKE %SELECT * FROM users WHERE id = 1;SELECT * FROM data WHERE nameLIKE %;
    • SQL InjectionA veces no se sabe el número de campos en la tabla: usamos mensajes de errorsql = "SELECT * FROM users WHERE user = " + userName + ";";userName -> HAVING 1=1--SELECT * FROM users WHERE user = HAVING 1=1--;userName -> GROUP BY campo1 HAVING 1=1--SELECT * FROM users WHERE user = GROUP BY campo1 HAVING 1=1--;userName -> GROUP BY campo1, campo2 HAVING 1=1--SELECT * FROM users WHERE user = GROUP BY campo1, campo2 HAVING1=1--;
    • SQL InjectionSi no hay mensajes de error, Blind SQL Injection● Si no hay error, se muestra la página normal.● http://myblog.com/post.asp?id=33 AND 1=1● SELECT * FROM posts WHERE id = 33 AND 1=1● Si hay error, se muestra otra página.● http://myblog.com/post.asp?id=33 AND 1=0● SELECT * FROM posts WHERE id = 33 AND 1=0● Google Hacking:– inurl:"php?id="– inurl:"asp?id="
    • DEMOReto hacking de El lado del mal
    • SQL InjectionBlind SQL Injection, herramientas● SQLbfTools:– http://www.reversing.org/node/view/11● ./mysqlbf.exe "http://web/vulnerable.php?ID=3" "now()""word"● SQL Ninja:– http://sqlninja.sourceforge.net/sqlninjademo1.html● Absinthe:– http://www.0x90.org/releases/absinthe/download.php
    • SQL InjectionPara practicar, retos hacking de El lado del mal (Informatica64)● Reto 1:– http://www.informatica64.com/retohacking● Reto 2:– http://retohacking2.elladodelmal.com● Reto 3:– http://retohacking3.elladodelmal.com● Reto 4:– http://retohacking4.elladodelmal.com● ...
    • A2 - Broken Authentication and Session ManagementCompromise passwords, keys, session tokens, etc.https://www.owasp.org/index.php/Top_10_2013-A2
    • DEMOAutenticación con Flash o Java local
    • A3 - Cross-Site Scripting (XSS)Allows attackers to execute scripts in the victim’s browserhttps://www.owasp.org/index.php/Top_10_2013-A3
    • Cross-Site Scripting (XSS)Diferentes tipos y alcances● Tipo 0: Basado en DOM.– Una página maliciosa abre una página local con permisos de ZonaLocal y ejecuta código con esas credenciales.– Típicamente en phising o SPAM.● Tipo 1: No persistente.– El más común, necesita Ingeniería Social para explotarse.– Típicamente en webs de búsquedas, se muestra a su vez la cadenaconsultada (si tiene código, será ejecutado).● Tipo 2: Persistente.– El código está almacenado en una BD, fichero, o similar.– No requiere mucha Ingeniería Social para que la víctima lo ejecute.– Típicamente en foros o similares.
    • Cross-Site Scripting (XSS)Técnicas de evasión de filtros● Evitar espacios.● Listas negras de tags:– <scr<script>ipt>● Codificación alternativa:– <IMGSRC=&#0000106&#0000097&#0000118&#0000097&#0000115...>● Strings con caracteres nulos:– perl -e print "<SCR0IPT>alert("XSS")</SCR0IPT>"; >out● XSS en Flash:– <EMBED SRC="http://ha.ckers.org/xss.swf"AllowScriptAccess="always"></EMBED>
    • DEMOphpBB2 modificado
    • A4 - Insecure Direct Object ReferencesReferences to an internal implementation object, such as a file, directory, or database keyhttps://www.owasp.org/index.php/Top_10_2013-A4
    • DEMORFI en PHP
    • A5 - Security MisconfigurationKeeping all software up to datehttps://www.owasp.org/index.php/Top_10_2013-A5
    • The Exploit DatabaseBúsqueda de avisos + exploits ordenados por temas y fechashttp://www.exploit-db.com/
    • A6 - Sensitive Data ExposureSensitive data deserves extra protection such as encryptionhttps://www.owasp.org/index.php/Top_10_2013-A6
    • Seguridad a través de la oscuridadrobots.txthttp://www.casareal.es/robots.txtUser-agent: *Disallow:Disallow: /_*/Disallow: /ES/FamiliaReal/Urdangarin/Disallow: /CA/FamiliaReal/Urdangarin/Disallow: /EU/FamiliaReal/Urdangarin/Disallow: /GL/FamiliaReal/Urdangarin/Disallow: /VA/FamiliaReal/Urdangarin/Disallow: /EN/FamiliaReal/Urdangarin/Sitemap: http://www.casareal.es/sitemap.xml
    • Seguridad a través de la oscuridadMeta-datos: Fear the FOCA!http://www.informatica64.com/foca.aspx
    • A7 - Missing Function Level Access ControlAttackers are able to forge requests in order to access unauthorized functionalityhttps://www.owasp.org/index.php/Top_10_2013-A7
    • DEMOCron en Moodle
    • Proteger el cron en MoodleSimilar para v1.9, 2.x, etc.http://docs.moodle.org/19/en/Cron
    • A8 - Cross-Site Request Forgery (CSRF)Forces a logged-on victim’s browser to send a forged HTTP requesthttps://www.owasp.org/index.php/Top_10_2013-A8
    • Cross-Site Request Forgery (CSRF)XSRF o "sea-surf"● Explota la confianza que tiene un sitio en elnavegador de un cliente autenticado.– El servidor: acepta las credenciales de la sesión deusuario almacenada en el navegador.– El cliente: accede a una web que fuerza a sunavegador a realizar acciones no deseadas en un sitioen el que previamente se ha autenticado.● Contramedida: tokens específicos en cadaformulario.
    • DEMOphpBB2 modificado
    • A9 - Using Components with Known VulnerabilitiesVulnerable components, such as libraries, frameworks, and other software moduleshttps://www.owasp.org/index.php/Top_10_2013-A9
    • The Exploit DatabaseBúsqueda de avisos + exploits ordenados por temas y fechashttp://www.exploit-db.com/
    • A10 - Unvalidated Redirects and ForwardsAttackers can redirect victims to phishing or malware siteshttps://www.owasp.org/index.php/Top_10_2013-A10
    • Ataques de redirecciónPoCs: IE/Firefox Redirection Issue – FB Oauth2 Bypass – BugCrowdhttp://soroush.secproject.com/blog/2013/03/iefirefox-redirection-issue-fb-oauth2-bypass-bugcrowd/
    • Cómo aprender seguridad websin acabar en la cárcel ;-)
    • OWASP WebGoatAplicación J2EE preparada para ser atacadahttps://www.owasp.org/index.php/Category:OWASP_WebGoat_Project
    • SEED (Weliang Du)Developing Instructional Laboratories for Computer SEcurity EDucationhttp://www.cis.syr.edu/~wedu/seed/
    • p0wnlabsLaboratorios para experimentar, de pago, aunque hay gratuitoshttp://p0wnlabs.com/free
    • Hacking-LabLaboratorio online para aprender (conexión por VPN)https://www.hacking-lab.com/
    • HTML5 y CSS3ataques novedosos
    • http://www.slideshare.net/x00mario/stealing-the-pie
    • “All user input is evil until proven otherwise”Ken Cox
    • Muchas gracias ;-)and... happy hacking!
    • Referencias● OWASP: The Open Web Application Security Project.● El lado del mal, retos hacking, por Chema Alonso.● Fear the FOCA! Informática64.● IE/Firefox Redirection Issue – FB Oauth2 Bypass – BugCrowd, porSoroush Dalili.● Scriptless Attacks: Stealing the pie without touching the sill, por MarioHeiderich, Felix Schuster y Marcus Niemietz.● The Exploit Database.● Wikipedia.
    • Todas las imágenes son propiedad desus respectivos dueños, el resto delcontenido está licenciado bajoCreative Commons by-sa 3.0