抓包
BurpSuite 是非常實用的抓包工具,使用 Burp Suite 之前需要先在 Firefox 設置代理。首先需要打開 Firefox 的設置頁面,選擇網絡選項。

選擇手動代理配置,BurpSuite 的 HTTP 協議默認代理是 127.0.0.1 的 8080 端口。

設置之后,Firefox 的 HTTP 包在發送請求之前,需要先發給 Burp Suite 看一遍,然后再由 Burp Suite 選擇放包才能把包傳出去。

例題:bugku-你必須讓它停下
打開之后,看到頁面不斷在刷新,切換得很快使得無法看源碼。

打開 BurpSuite 抓包,不停地 GOGOGO!

終於在抓到的某一個包中,看到了 flag。

例題:攻防世界-baby_web
打開網頁,看到一個 “Hello,world!”,根據提示初始頁面應該是 index.php,但是這里確實 1.php。

修改 url 后還是這個頁面,懷疑是打開 index.php 之后馬上跳轉到 1.php 頁面了。此時是沒有辦法看到 index.php 頁面的,通過抓包查看響應報文得到 flag。

HTTP 報文修改
BurpSuite 在抓到包之后,可以對抓到的 HTTP 進行編輯,可以變更 HTTP 的請求方式或者添加字段。

經常需要添加的字段有 2 個,首先是 Referer 字段,它是 header 的一部分,用於告訴服務器該網頁是從哪個頁面鏈接過來的,服務器因此可以獲得一些信息用於處理。還有一個字段是 X-Forwarded-For,用來識別通過 HTTP 代理或負載均衡方式連接到 Web 服務器的客戶端最原始的 IP 地址的 HTTP 請求頭字段。
例題:bugku-web 基礎 $_POST
打開網頁,題目要求我們使用 POST 方法提交 flag 值上去。

這里可以使用火狐瀏覽器的 Hackbar 插件,也可以用用 Python 的 requests 庫的 post 方法提交一個字典上去。也可以打開 BurpSuite 抓包,抓到的包是 GET 請求。

修改該請求為 POST,並且附加上“what=flag”的信息,放包。


例題:bugku-你從哪里來
打開題目,題目問我們是不是來自 google。

由於我們需要告訴服務器該網頁是從 google 過來的,因此我們應該修改 HTTP 的 referer 頭為 google 的。首先抓包:

然后在包中自己加上個 Referer 字段,內容為 “https://www.google.com”,上傳就可以得到 flag。

例題:bugku-管理員系統

隨便輸個數字進去,獲得提示“IP 禁止訪問,請聯系本地管理員登陸,IP 已被記錄”。

也就是說現在我們需要偽裝成本地登錄,此時想到了“127.0.0.1”這個 IP 地址表示回送地址,本地機用來測試使用。因此我們應該要構造一個 X-Forwarded-For 來提交,值為本地測試地址:
X-Forwarded-For: 127.0.0.1

現在提交 HTTP 包,發現此時的輸出已經變了。但是還沒成功,現在考慮下用戶名和密碼。

用 F12 打開網頁,發現一個可疑的字符串,是一段 base64 加密,解開是“test123”。

應該就是密碼了,因為是管理員,就猜測用戶名是 admin。現在把上述所有內容提交,獲得 flag。

爆破
BurpSuite 支持對報文中的某些部分進行爆破,例如在已知用戶名的情況下拿到一個登錄頁面,我們可以通過窮舉法爆破密碼來達到強行登錄的效果。

爆破的操作是將 HTTP 包發給測試器,用 “$” 符號選定爆破操作的位置,選擇合適的有效載荷(例如密碼字典或自然數序列等)和攻擊模式后就可以進行爆破。判斷爆破結果是不是我們想要的方法是,看看返回的 length,在爆破樣本中具有不同 length 的負載就可能是我們想要的東西了。

例題:bugku-輸入密碼查看 flag
打開網頁,提示爆破 5 位密碼。

首先隨便寫個密碼,打開 BurpSuite 抓包,把包送到測試器后選擇爆破類型為數字。

還沒爆破完就有戲了,發現一個可疑密碼“13579”,輸入得到 flag。

例題:bugku-網站被黑
打開網頁,網址后有 webshell,這是以 asp、php、jsp 或者 cgi 等網頁文件形式存在的一種代碼執行環境,是一種網頁后門。

使用御劍掃描下后門,發現 3 個網頁,其中 shell.php 最可疑。

打開,發現需要輸入密碼,那就使用 BurpSuite 爆破嘍。

先隨便填個密碼進去,BurpSuite 抓到包后發給 Intruder 模塊,使用狙擊手攻擊。

點擊有效載荷,在有效載荷選項下的從列表中添加下的密碼,然后開始攻擊。

發現一個可以的密碼 “hack”,它的長和其他的都不一樣,那應該就是密碼了,輸進去獲得 flag。

例題:攻防世界-ics-06
打開頁面,看上去是個很高端的頁面,翻一翻只有這個頁面有反應,根據提示 flag 應該和這個頁面有關。

F12、抓包和掃后台都沒有什么有用的信息,觀察到 url 上已經用 GET 方法傳遞了值進去,猜測 flag 可能需要修改 id 參數。隨便改幾個參數,頁面沒有什么變化。

此時大膽猜測當 id 等於某個值時就會出現 flag,但是人工嘗試工作量很大。使用 Brup 爆破是比較好的做法,首先用 Brup 抓包。

把包傳給 Intruder 測試器,攻擊類型選 Sniper,設置爆破點為 id 參數。

設置有效載荷為數字,從 0 到一個比較大的數,增量為 1。

開始攻擊后等上一會兒,爆破到 2333 時發現 length 不一樣,也就是說當 id = 2333 時就能看到 flag。

