텔넷을 통해 웹사이트 접속 및 인증

텔넷을 통해 웹사이트 접속 및 인증

접근하려고 하는데httpbin.org기본 인증이 있습니다. 사용자 이름과 비밀번호를 입력해야 합니다. 명령 터미널(Linux)에서 텔넷을 사용하여 최소한 다음을 실행합니다.

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==

관련 정보