Niveau "Low"
Ce challenge offre la possibilité de vérifier l'état d'un hôte effectuant un ping. Je commence, par exemple, par pinger la passerelle du réseau à l'adresse 192.168.56.1
(il s'agit ici de la passerelle VirtualBox) :

La fonctionnalité permet également de prendre un nom de domaine comme valeur :

L'application étant en PHP, le code correspondant doit être sans-doute similaire à ceci :
<?php
system('ping ' . $_POST['ip']);
?>
Sous Linux, il existe plusieurs possibilités afin d’enchaîner des commandes : les pipelines ainsi que les listes.
Pipeline
Les caractères de pipelines sont les caractères "|"
et "|&"
. Ils permettent de rediriger la sortie (resp. sortie d’erreurs) vers l’entrée de la seconde commande.
Pour rediriger la sortie standard de command1
vers l’entrée de command2
:
$ command1 | command2
Pour rediriger la sortie d’erreurs de command1
vers l’entrée de command2
:
$ command1 |& command2
List
Les listes sont des séquences de commandes séparées par les opérateurs suivants : ";"
, "&"
, "&&"
et "||"
.
Pour exécuter la command1
puis la command2
:
$ command1 ; command2
Pour exécuter la command1
dans un subshell de façon asynchrone :
$ command1 & command2
Pour exécuter command1
puis command2
si et seulement si command1
se termine en succès (Opérateur AND) :
$ command1 && command2
Pour exécuter command1
puis command2
si et seulement si command1
se termine en erreur (Opérateur OR) :
$ command1 || command2
Afin d'exécuter la commande, le plus simple est d'utiliser le séparateur de commandes ";"
puis d'insérer ma commande ensuite :

Ou encore plus simple, en omettant le ping :

Dernière mise à jour