Curl, qui est l'acronyme de Client URL, est un outil en ligne de commande polyvalent utilisé à la base pour vérifier la connectivité et la réponse d'un site rapidement. Il est également utilisé pour effectuer des transferts de données à travers divers protocoles. Il offre une gamme complète de fonctionnalités comme le téléchargement de fichiers et la prise en charge de nombreux protocoles comme HTTP, FTP, SCP.
Son utilisation est simple, les utilisateurs spécifient des options directement dans leur terminal et la réponse leur est directement renvoyée sur celui-ci.}}
Voici le guide d'installation pour la commande Curl :
sudo apt-get install curl
sudo yum install curl
brew install curl
Supposons que vous souhaitiez vérifier la connectivité à un serveur web distant. Vous pouvez utiliser Curl pour effectuer un test de connectivité en envoyant une requête HTTP HEAD au serveur :
curl -I https://www.perdu.com
Cela vous donnera des informations sur la réponse du serveur, y compris le code de statut HTTP, les en-têtes de réponse, et le temps de réponse. Si le serveur est accessible, Curl affichera alors ces détails :
HTTP/2 200 date: Tue, 31 Oct 2023 10:16:45 GMT content-type: text/html last-modified: Thu, 02 Jun 2016 06:01:08 GMT etag: W/"cc-5344555136fe9-gzip" cache-control: max-age=600 expires: Tue, 31 Oct 2023 10:26:45 GMT vary: Accept-Encoding,User-Agent server: cloudflare cf-ray: 81eb24f4fab92292-CDG alt-svc: h3=":443"; ma=86400
Dans le cas où vous souhaitez utiliser une méthode de requête HTTP particulière :
Il est possible d’utiliser l’option -X <méthode>, de la façon suivante :
curl -X POST https://www.perdu.com
Ici, nous réalisons une requête HTTP en utilisant la méthode POST, mais nous aurions pu utiliser n’importe quelle autre méthode.
Pour l’exploitation d’une vulnérabilité, imaginons que vous ayez un endpoint spécifique que vous souhaitez tester sur une requête de type POST
Vous pouvez préciser les données que vous souhaitez poster avec l’option -d :
curl -X POST -d "username=alice&password=bob" "https://example.com/login"
Dans cet exemple, nous avons envoyé une requête permettant d’enregistrer l’utilisateur alice avec le mot de passe bob sur l’endpoint /login de example.com.