Recherche de site Web

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.org

cURL 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.org

Dé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.org

Vous 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.png

Vous 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.png

Requê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.php

L’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.com

Les 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.

Articles connexes: