Comment manipuler HTTP avec cURL
Objectif
Découvrez comment utiliser cURL pour effectuer des requêtes HTTP afin d’interagir avec du contenu en ligne.
Distributions
Toutes les distributions GNU/Linux
Exigences
Juste cURL. Il est disponible dans le dépôt de chaque distribution.
Difficulté
Facile
Conventions
# – nécessite un accès root via su ou sudo.
$ – exécuter en tant qu’utilisateur habituel
Introduction
cURL est un multi-outil en ligne de commande permettant d’interagir avec le web. cURL est capable d’agir comme un navigateur Web, de télécharger des fichiers, d’accéder aux API et même de vous connecter à des comptes en ligne. cURL peut être scripté, et il gère tout à partir d’une simple interface de ligne de commande.
Saisir une page
Obtenir le HTML d’une page Web est l’une des choses les plus élémentaires que cURL peut faire. Essayez d’obtenir notre page d’accueil.
curl https://linuxconfig.orgcURL vide tout le code HTML de la page Web dans le terminal. Ça a l’air désordonné, mais c’est ce qu’il est censé faire.
Essayez-en un autre. Le site web de Debian est un peu plus facile à lire.
curl https://www.debian.org/En-têtes HTTP
La plupart du temps, vous n’avez pas besoin d’une page Web entière. Tout ce HTML peut être difficile à parcourir, et tout ce dont vous avez besoin, ce sont des informations sur la connexion. cURL a le -I pour cela.
curl -I https://linuxconfig.orgDésormais, vous n’obtenez que les en-têtes HTTP qui vous donnent des informations sur votre connexion au site.
Cela fonctionne de la même manière avec Debian.
curl -I https://www.debian.org/Contrôle de la sortie
Toute cette sortie n’est pas très utile si vous ne pouvez pas l’enregistrer. Il serait pénible d’exécuter cURL à chaque fois que vous en avez besoin, et que se passe-t-il si cela change ? Heureusement, vous pouvez absolument enregistrer la sortie de cURL avec l’indicateur -o.
curl -o linuxconfig.html https://linuxconfig.orgVous venez d’enregistrer le code source de la page d’accueil de LinuxConfig dans un fichier appelé linuxconfig.html.
C’est beaucoup plus utile pour les fichiers multimédias, cependant. Essayez de saisir le logo de Google.
curl -o google.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.pngVous pouvez également utiliser l’indicateur -O pour indiquer à cURL d’utiliser le nom existant du fichier.
curl -O https://getfedora.org/static/images/fedora_infinity_140x140.pngRequêtes HTTP et connexion
Avec cURL, vous pouvez interagir avec les pages Web via HTTP. Vous pouvez en fait utiliser cURL pour vous connecter à un site Web. Jetez un coup d’œil à cet exemple de notre guide de pentest Hydra.
curl -v --data 'log=username&pwd=realpassword&wp-submit=Log+In&testcookie=1' --cookie 'wordpress_test_cookie=WP+Cookie+check' http://localhost/wp-login.phpL’indicateur --data ou -d transmet les données à un formulaire à l’aide de grandes variables de chaîne et des noms des champs de formulaire associés. Vous pouvez également envoyer des cookies avec cURL.
Essayez de rechercher DuckDuckGo pour Linux.
curl -v -d 'q=linux' https://duckduckgo.comLes résultats peuvent être un gâchis, mais la recherche elle-même est simple. Au cas où vous vous poseriez la question, l’indicateur -v ajoute les en-têtes à la sortie normale.
Réflexions finales
cURL est incroyablement puissant. Vous n’avez fait qu’effleurer la surface, mais vous devriez avoir une bonne idée de la façon dont cURL peut interagir avec les pages Web et télécharger du contenu sur Internet. cURL peut vous donner de véritables informations sur le fonctionnement du Web, cela vaut donc vraiment la peine d’en expérimenter davantage.