ctfhub技能樹—web前置技能—http協議—基礎認證


打開靶機環境

 

 

 下載附件后發現是常用密碼字典,於是考慮本題可能是考察密碼爆破

 

 

打開環境

發現需要認證,於是考慮使用暴力破解

 

使用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是編碼,不是加密),因此密碼等信息可能會被嗅探器發現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM