TelnetによるWebサイトへのアクセスと認証

TelnetによるWebサイトへのアクセスと認証

アクセスしようとしています。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:hunter2base64でエンコードします。これはあなたに文字列を与えるでしょうdGVzdHVzZXI6aHVudGVyMg==

そのエンコーディングをどのように取得しますか?ほとんどのPOSIXシステムはopensslインストールされており、この場合非常に重要ですecho -n "testuser:hunter2" | openssl base64 -base64。それ以外の場合、エンコードにはaも含まれ、誤ってエンコードされた文字列が提供されます(パスワードは通常文字の終わりで終わらないため)。-nnewline

その後、以下で取引できますtelnet

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

関連情報