=目標:
將瀏覽器數據代理至BP的proxy模塊。
將個人PHP的留言板項目首頁登錄數據包代理至BP,并轉發至intrder模塊,進行暴力破解。
免責聲明:本文章內容僅用于個人網絡安全知識學習與研究,嚴禁用于任何未經授權的攻擊或非法活動,使用者需遵守相關法律法規,一切違法違規行為后果自負!
抓包:
由于自己的項目后端沒有寫加密,抓包后直接發現問題:明文傳輸
查看事件日志,大抵這也算是信息收集的一部分~
并且注意到,剛訪問頁面時抓包是get請求,提交數據后抓到的包才是后端代碼中寫的post請求
這種現象是由HTTP 請求的分工和網頁交互流程決定的,本質上是 “頁面加載” 與 “表單提交” 兩種行為對應不同請求方法的結果,具體原因如下:
1. 剛進入頁面時的 GET 請求:負責 “獲取資源”
當你在瀏覽器中輸入網址或點擊鏈接進入登錄頁面時,瀏覽器會發送GET 請求,這是因為:
GET 請求的核心作用:從服務器獲取資源(如 HTML 頁面、CSS、JS、圖片等)。
登錄頁面本身是一個網頁(由 HTML、CSS、JS 等文件組成),瀏覽器需要通過 GET 請求向服務器 “索要” 這些資源,服務器收到 GET 請求后,會返回登錄頁面的 HTML 代碼,瀏覽器再解析代碼并渲染出登錄界面(輸入框、登錄按鈕等)。為什么用 GET?
GET 是 HTTP 協議中默認的 “獲取資源” 方法,它的語義是 “從服務器讀取數據”,不會對服務器數據進行修改,適合用于請求靜態資源(頁面、圖片等)或查詢數據。2. 點擊登錄按鈕后的 POST 請求:負責 “提交數據”
當你填寫賬號密碼并點擊 “登錄” 按鈕時,觸發的是表單提交行為,此時后端設計為 POST 請求,原因是:
POST 請求的核心作用:向服務器提交數據(如表單內容),并可能導致服務器數據被修改(如驗證賬號密碼、創建會話等)。
登錄功能需要將用戶輸入的賬號、密碼發送給服務器驗證,這屬于 “向服務器提交數據” 的行為,符合 POST 請求的語義(POST 更適合處理有副作用的操作,如提交、修改數據)。為什么登錄用 POST 而非 GET?
GET 請求的參數會暴露在 URL 中(如
?username=xxx&password=xxx
),安全性低,不適合傳輸敏感信息(密碼)。POST 請求的參數放在請求體中,相對更安全,且支持更大的數據量,適合傳輸表單數據。
3. 背后的技術邏輯:網頁交互的 “兩步走”
登錄頁面的交互流程本質是 “先加載頁面,再提交數據” 的兩步操作:
第一步:加載登錄頁面(GET)
瀏覽器發送 GET 請求 → 服務器返回登錄頁面的 HTML(包含表單標簽<form>
) → 瀏覽器渲染出帶輸入框和按鈕的界面。
此時的<form>
標簽可能已經定義了提交方式為 POST(如<form method="post" action="/login">
),但未點擊按鈕時,這個表單不會被提交。第二步:提交登錄數據(POST)
點擊 “登錄” 按鈕 → 觸發表單提交事件 → 瀏覽器根據<form>
標簽中method="post"
的定義,向action
指定的地址發送 POST 請求 → 請求體中攜帶賬號、密碼等數據 → 服務器驗證并返回結果。總結 :
GET 請求:用于 “獲取登錄頁面資源”,是進入頁面時的默認行為,目的是讓瀏覽器渲染出可交互的界面。
POST 請求:用于 “提交登錄數據”,是點擊按鈕后的主動操作,目的是將敏感信息發送給服務器驗證。
這兩種請求分別對應 “頁面加載” 和 “數據提交” 兩個階段,分工明確,符合 HTTP 協議中 GET(讀取)和 POST(提交)的設計語義。
暴力破解:
將抓到的包轉發至intrder模塊,進行暴力破解。
開始攻擊,通過尋找到“字段長度”明顯不同的字段,確定正確密碼
E? ? ? ? ? ? ? ? ?N? ? ? ? ? ? ? ? ?D