HTTP基本認證
在HTTP中,基本認證(英語:Basic access authentication)是允許http用戶代理(如:網頁瀏覽器)在請求時,提供用戶名和密碼 的一種方式。HTTP基本認證 。
題目描述
點擊鏈接后,題目出現了讓你輸入用戶名和密碼的彈窗。而通過提示信息,我們知道用戶名大概率是admin。而加之題目附件給出了字典。那么密碼一定在給出的字典中。我們可以通過burp來進行爆破。
解題過程
抓包
首先設置火狐的代理,讓火狐的走burpsuit的代理127.0.0.1:8080
要想方便的話,還是要用火狐的插件,方便切換代理。

同時在Burp端設置好截斷,監聽127.0.0.1:8080

然后攔截我們輸入密碼的那一次請求

確定之后,我們會在burp的代理頁面看到HTTP報文

我們注意到最后一行,Authorization :Basic
后面應該是一行base64編碼。

解碼之后我們就可以發現,我們剛剛輸入的賬號名的密碼通過Base64 編碼加密了。
爆破
在代理的界面右鍵轉發到測試器。
攻擊位置,我們選擇剛剛我們測試的base64。
然后我們設置payload
我們設置為自定義的迭代器

位置1

位置2

對我們的payload進行base64編碼處理

之后我們就可以開始進行爆破了。

篩選出來唯一一條正確響應的那條記錄
查看響應包。
獲取flag。
相關知識
HTTP基本認證
HTTP基本認證 是一種十分簡單的技術,使用的是 HTTP頭部字段 強制用戶訪問網絡資源,而不是通過必要的cookie、會話ID、登錄頁面等(非獲取訪問控制的)手段。
在進行基本認證的過程里,請求的HTTP頭字段會包含Authorization字段,形式如下: Authorization: Basic <憑證>
,該憑證是用戶和密碼的組和的base64編碼。
過程
首先請求一個需要身份認證的網頁,會有彈窗提示讓你輸入密碼。如果沒有提供用戶名和密碼,服務端會響應一個401應答碼,並提供一個認證域(Access Authentication):頭部字段為:WWW-Authenticate
,該字段為要求客戶端提供適配的認證信息。
GET /private/index.html HTTP/1.0
Host: localhost
HTTP/1.0 401 Authorization Required
Server: HTTPd/1.0
WWW-Authenticate: Basic realm="Secure Area"
Content-Type: text/html
Content-Length: 311
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<HEAD>
<TITLE>Error</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
</HEAD>
<BODY><H1>401 Unauthorized.</H1></BODY>
</HTML>
注意上面的WWW-Authenticate: Basic realm="Secure Area"
的這一字段。Basic
為驗證的模式,realm="Secure Area"
為保護域,用於與其他請求URI作區別。
接到應答后,客戶端顯示該認證域(輸入用戶名和密碼的框框)。給用戶並提示輸入用戶名和密碼。此時用戶可以選擇確定或取消。
用戶輸入了用戶名和密碼后,客戶端軟件將對其進行處理,並在原先的請求上增加認證消息頭(Authorization)然后重新發送再次嘗試。過程如下:
- 將用戶名和密碼拼接為
用戶:密碼
形式的字符串。 - 如果服務器WWW-Authenticate字段有指定編碼,則將字符串編譯成對應的編碼(如:UTF-8)。
- 將字符串編碼為base64。
- 拼接
Basic
,放入Authorization頭字段
,就像這樣:Authorization :Basic 字符串
。- 這里注意Base64編碼並非加密算法,其無法保證安全與隱私,僅用於將用戶名和密碼中的不兼容的字符轉換為均與HTTP協議兼容的字符集。
GET /private/index.html HTTP/1.0
Host: localhost
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
服務端會進行基本認證,如果認證通過,則返回正確的頁面。否則還是401 unauthorized
HTTP/1.0 200 OK
Server: HTTPd/1.0
Date: Sat, 27 Nov 2004 10:19:07 GMT
Content-Type: text/html
Content-Length: 10476
優點
-
簡單,應用范圍廣
- HTTP基本認證是一種十分簡單的技術,使用的是HTTP頭部字段強制用戶訪問網絡資源,而不是通過必要的cookie、會話ID、登錄頁面等(非獲取訪問控制的)手段
-
在可信網絡環境中使用基本認證。
- 內部網絡,或者對安全要求不是很高的網絡。會結合HTTPS一起使用的,https保證網絡的安全性,然后基本認證來做客戶端身份識別。
缺點
- 基本認證 並沒有為傳送憑證(transmitted credentials)提供任何機密性的保護,僅僅使用 Base64 編碼並傳輸,而沒有使用任何加密算法。因此,基本認證常常和HTTPS 一起使用,以提供機密性。
參考資料
[1]. HTTP基本認證