telnet 访问网站并进行身份验证

telnet 访问网站并进行身份验证

我正在尝试访问httpbin.org具有基本的身份验证。我必须输入用户名和密码。在命令终端(linux)中使用 telnet 我至少执行:

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

它给出 401 状态代码(未经授权)。

我现在想使用用户名和密码(在 Base64 中,输入为用户名:密码)以某种方式访问​​它。我该怎么做?我已经尝试过(401状态码之后)

HEAD /username:password HTTP/1.1

(但这会给出 404 状态代码)

答案1

HTTP 基本身份验证同时使用用户名和密码的 base-64 编码。对于用户名testuser和密码hunter2,您将获取该字符串testuser:hunter2并对其进行 base64 编码。这会给你字符串dGVzdHVzZXI6aHVudGVyMg==

你问,如何获得该编码?大多数 POSIX 系统已openssl安装,在这种情况下您可以使用echo -n "testuser:hunter2" | openssl base64 -base64.这-n是非常重要的,否则您还将newline在编码中包含 a ,这将给您一个不正确的编码字符串(因为密码通常不以换行符结尾)。

然后您可以通过telnet以下方式进行交易:

telnet hostname.example.com 80
GET / HTTP/1.1
Authorization: Basic dGVzdHVzZXI6aHVudGVyMg==

相关内容