Pesquisa de site

Como manipular HTTP com cURL


Objetivo

Aprenda como usar cURL para fazer solicitações HTTP para interagir com conteúdo online.

Distribuições

Todas as distribuições GNU/Linux

Requisitos

Apenas enrole. Está disponível em todos os repositórios de distribuição.

Dificuldade

Fácil

Convenções

# – requer acesso root via su ou sudo.

$ – execute como seu usuário normal

Introdução

cURL é uma multiferramenta de linha de comando para interagir com a web. cURL é capaz de agir como um navegador da web, baixar arquivos, acessar APIs e até mesmo fazer login em contas online. cURL pode ser programado e lida com tudo, desde uma simples interface de linha de comando.

Agarrando uma página

Obter o HTML de uma página da web é uma das coisas mais básicas que o cURL pode fazer. Tente obter nossa página inicial.

$ curl https://linuxconfig.org

cURL despeja todo o HTML da página da web no terminal. Parece confuso, mas é isso que deveria fazer.

Tente outro. O site do Debian é um pouco mais fácil de ler.

$ curl https://www.debian.org/

Cabeçalhos HTTP

Muitas vezes, você não precisa de uma página da web inteira. Todo esse HTML pode ser difícil de ler e tudo que você precisa são informações sobre a conexão. cURL tem o -I exatamente para isso.

$ curl -I https://linuxconfig.org

Agora, você obtém apenas os cabeçalhos HTTP que fornecem informações sobre sua conexão com o site.

Funciona da mesma forma com o Debian.

$ curl -I https://www.debian.org/

Controlando a saída

Toda essa saída não será muito útil se você não puder salvá-la. Seria difícil executar o cURL sempre que você precisar dele, e se ele mudar? Felizmente, você pode salvar a saída do cURL com o sinalizador -o.

$ curl -o linuxconfig.html https://linuxconfig.org

Você acabou de salvar o código fonte da página inicial do LinuxConfig em um arquivo chamado linuxconfig.html.

No entanto, isso é muito mais útil para arquivos multimídia. Tente pegar o logotipo do Google.

$ curl -o google.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

Você também pode usar o sinalizador -O para dizer ao cURL para usar o nome existente do arquivo.

$ curl -O https://getfedora.org/static/images/fedora_infinity_140x140.png

Solicitações HTTP e login

Com cURL, você pode interagir com páginas da web via HTTP. Na verdade, você pode usar cURL para fazer login em um site. Dê uma olhada neste exemplo do nosso Guia Hydra Pentesting.

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

O sinalizador --data ou -d passa dados para um formulário usando variáveis de string grandes e os nomes dos campos de formulário associados. Você também pode enviar cookies com cURL.

Tente pesquisar DuckDuckGo para Linux.

$ curl -v -d 'q=linux' https://duckduckgo.com

Os resultados podem ser uma bagunça, mas a pesquisa em si é simples. Caso você esteja se perguntando, o sinalizador -v adiciona os cabeçalhos à saída normal.

Considerações finais

cURL é incrivelmente poderoso. Você apenas arranhou a superfície, mas deve ter uma boa ideia de como o cURL pode interagir com páginas da web e baixar conteúdo da Internet. cURL pode fornecer alguns insights reais sobre como a web funciona, então definitivamente vale a pena experimentar um pouco mais.

Artigos relacionados: