telnet acessando site com autenticação

2

Estou tentando acessar o link com a autenticação básica. Preciso digitar um nome de usuário e uma senha. Usando telnet no terminal de comando (linux) eu executo pelo menos:

telnet httpbin.org 80 
HEAD /basic-auth/user/passwd HTTP/1.1

Fornece um código de status 401 (não autorizado).

Eu quero agora de alguma forma acessá-lo usando um nome de usuário e uma senha (no Base64, inserido como nome de usuário: senha). De que maneira eu faço isso? Eu tentei (após o código de status 401)

HEAD /username:password HTTP/1.1

(mas isso dá um código de status 404)

    
por coders 12.11.2015 / 22:16

1 resposta

6

Autenticação básica HTTP usa a codificação base-64 do nome de usuário e senha juntos. Para um nome de usuário testuser e uma senha de hunter2 , você pegaria a string testuser:hunter2 e a base64-encode. Isso lhe dará a string dGVzdHVzZXI6aHVudGVyMg==

Como, você pergunta, você consegue essa codificação? A maioria dos sistemas POSIX tem openssl instalado, caso em que você pode usar a saída de echo -n "testuser:hunter2" | openssl base64 -base64 . O -n é hiper-importante, caso contrário, você também incluirá um newline na codificação, o que fornecerá uma string codificada incorreta (já que a senha não termina com um caractere de nova linha geralmente).

Você pode transacionar via telnet assim:

telnet hostname.example.com 80
GET / HTTP/1.1
Authorization: Basic dGVzdHVzZXI6aHVudGVyMg==
    
por 12.11.2015 / 22:31