在HTTP中,基本認證(英語:Basic access authentication)是允許http用戶代理(如:網頁瀏覽器)在請求時,提供用戶名和密碼的一種方式,
在HTTP中,基本認證(英語:Basic access authentication)是允許http用戶代理(如:網頁瀏覽器)在請求時,提供用戶名和密碼的一種方式,
在進行基本認證的程序里,請求的HTTP頭欄位會包含Authorization欄位,形式如下: Authorization: Basic <憑證>,該憑證是用戶和密碼的組和的base64編碼,
優點
HTTP基本認證 是一種十分簡單的技術,使用的是HTTP頭部欄位強制用戶訪問網路資源,而不是通過必要的cookie、會話ID、登錄頁面等(非獲取訪問控制的)手段,
基本上所有流行的網頁瀏覽器都支持基本認證,基本認證很少在可公開訪問的互聯網網站上使用,有時候會在小型私有系統中使用(如路由器網頁管理介面),之后誕生的 HTTP摘要認證 用于替代基本認證,允許密鑰以相對安全的方式在不安全的通道上傳輸,
程式員和系統管理員有時會在可信網路環境中使用基本認證,由于,基本認證使用的是Base64,可解碼成明文,因此使用Telnet等網路協議工具進行監視時,可以直接獲取內容,并用于診斷,
缺點
基本認證 并沒有為傳送憑證(英語:transmitted credentials)提供任何機密性的保護,僅僅使用 Base64 編碼并傳輸,而沒有使用任何 加密 或 散列演算法,因此,基本認證常常和 HTTPS 一起使用,以提供機密性,
現存的瀏覽器保存認證資訊直到標簽頁或瀏覽器被關閉,或者用戶清除歷史記錄,HTTP沒有為服務器提供一種方法指示客戶端丟棄這些被快取的密鑰,這意味著服務器端在用戶不關閉瀏覽器的情況下,并沒有一種有效的方法來讓用戶退出,
同時 HTTP 并沒有提供退出機制,但是,在一些瀏覽器上,存在清除憑證(credentials )快取的方法,
文字程序
這一個典型的HTTP客戶端和HTTP服務器的對話,服務器安裝在同一臺計算機上(localhost),包含以下步驟:
- 客戶端請求一個需要身份認證的頁面,但是沒有提供用戶名和密碼,這通常是用戶在地址欄輸入一個URL,或是打開了一個指向該頁面的鏈接,
- 服務端回應一個401應答碼,并提供一個認證域(英語:Access Authentication),頭部欄位為:
WWW-Authenticate,該欄位為要求客戶端提供適配的資源,WWW-Authenticate: Basic realm="Secure Area"該例子,Basic為驗證的模式,realm="Secure Area"為保護域,用于與其他請求URI作區別, - 接到應答后,客戶端顯示該認證域給用戶并提示輸入用戶名和密碼,此時用戶可以選擇確定或取消,
- 用戶輸入了用戶名和密碼后,客戶端軟體將對其進行處理,并在原先的請求上增加認證訊息頭(英語:Authorization)然后重新發送再次嘗試,程序如下:
- 將用戶名和密碼拼接為
用戶:密碼形式的字串, - 如果服務器
WWW-Authenticate欄位有指定編碼,則將字串編譯成對應的編碼(如:UTF-8), - 將字串編碼為base64,
- 拼接
Basic,放入Authorization頭欄位,就像這樣:Authorization Basic 字串, 示例:用戶名:Aladdin,密碼:OpenSesame,拼接后為Aladdin:OpenSesame,編碼后QWxhZGRpbjpPcGVuU2VzYW1l,在HTTP頭部里會是這樣:Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l, Base64編碼并非加密演算法,其無法保證安全與隱私,僅用于將用戶名和密碼中的不兼容的字符轉換為均與HTTP協議兼容的字符集,
- 將用戶名和密碼拼接為
- 在本例中,服務器接受了該認證螢屏并回傳了頁面,如果用戶憑據非法或無效,服務器可能再次回傳401應答碼,客戶端可以再次提示用戶輸入密碼,
注意:客戶端有可能不需要用戶互動,在第一次請求中就發送認證訊息頭,
CTFHUB上HTTP身份認證實體:
1.在輸入框用戶名輸入admin,密碼框輸入123456
2.使用Burp Suit進行抓包

由上面的前言可以知道,訊息認證頭Authorization后面跟著的是base64編碼的admin:123456,
直接將抓到的資料包發送到Intruder這個模塊,再進行爆破,

在這個地方標注出來,如圖下所示

在Payloads模塊匯入密碼及配置相關資訊

最后點擊Start attack進行爆破

最后,可在status200值內可以看到密碼正確的結果,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/508790.html
標籤:其他
上一篇:實體決議Java反射
