Enumerando HTTP

Essa fase é muito importante para sabermos, por exemplo:

→Versões do web server (IIS, Apache, Nginx, etc).

→Tecnologias utilizadas (PHP, ASP, JSP, etc).

→Métodos aceitos (PUT, POST, DELETE, etc).

Como fazer?

→Buscando portas abertas: 80, 8080, 81, 8181 (pode-se ter um servidor web rodando em qualquer porta tcp).

→Saber como um sistema interage com ele quando utilizamos o protocolo HTTP/1.0 e HTTP/1.1 (necessário usar o Host:).

→ Fazer requisições GET, HEAD, OPTIONS.

→Utilitários que podemos utilizar: nc, curl, telnet.

user@xubuntu:~$ nc -v businesscorp.com.br 80
Connection to businesscorp.com.br 80 port [tcp/http] succeeded!
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Sat, 28 Sep 2019 19:18:17 GMT
Server: Apache/2.2.22 (Debian)
Last-Modified: Wed, 25 Sep 2019 17:05:45 GMT
ETag: "20463-1bb6-59363a9ea0957"
Accept-Ranges: bytes
Content-Length: 7094
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

Quando formos utilizar o HTTP1.1, é necessário informar o header host, pois em alguns casos se não for passado, o servidor não irá aceitar. Pode haver um proxy no meio do caminho e o servidor pode ter vários sites hospedados, então para conseguirmos mais informações de uma aplicação em específico, é necessário informar o host junto com o domínio.

Quando fazemos uma requisição para a raíz da aplicação, não é retornado no cabeçalho a versão da linguagem utilizada. Para conseguirmos essa informação, é necessário informar o arquivo dessa tecnologia. Sem informar irá retornar a seguinte resposta abaixo.

Agora informando o arquivo irá trazer a versão.

Last updated

Was this helpful?