[Burp Suite 完整教學] Intruder 如何觀察與判斷堆積如山的結果

不知道我有沒有提過,我是機械系出身的,
先前的工作是個熱流研究員,
比較熟悉的領域是CFD(計算流體力學),
也就是跑熱流模擬分析的。

就像CFD中常聽到的一句話,
「Garbage in, garbage out.」,
只是動手操作軟體工具,要跑出一個結果其實很容易,
作為一個合格的研究員,應該是要能夠清楚了解自己的輸入參數,
背後的演算法跟紊流模型、初始與邊界條件的合理與正確性。

不過懂得正確跑模擬與設定適當的參數,
也只是一個普通合格的熱流研究員。
懂得看結果,分析結果的端倪,
做出分析判斷與下一步方向的才是個專業的研究員。

所以回到正題XD
我們知道了如何操作Intruder,
也知道的攻擊模式與Payload的類型,
可以進行攻擊進行暴力破解之後呢?

要從滿滿的結果當中,
找出哪個才是我們想要的結果,
或是可以從眾多回應當中分析出可能的漏洞點,
這個也是一件相當重要的事情。

其實前面有提到過,
可以利用length跟status code去做判斷,
這其實也是實務上最常用好用的判斷方式。
但實際上也常常會遇到利用這兩項還是找不出我們想要的結過,
如果你只知道用這個兩個東西去分析,
那這兩個東西如果看不出差異,你就摸摸鼻頭打算放棄,
那就太可惜了,可能就錯過了一個千載難逢的漏洞阿。
所以今天來談談稍微多一些些分析Intruder結果的方法。

首先從登入畫面就開始進行暴力破解,
這邊我原始的帳號密碼使用admin:password,
使用cluster bomb的攻擊模式,
帳號密碼都使用Simple的Payload,
隨便輸入幾個,有確定有一組是正確的帳密組合就好。

還有要記得開起always去處理redirection,
接著開始攻擊,攻擊之後的結果如下,
如果一直所說的,一般最常是利用回應的長度,
還有回應的HTTP Status Code去做差異性的判斷,
不過這邊Status Code都一樣,可是我們能夠藉由長度判斷有一個不一樣。

我們可以看到帳密登入成功的回應中會有,
「Welcome to Damn Vulnerable Web App」這一段內容,
所以我們可以利用Options的設定來新增一個flag欄位,
協助我們去判斷哪些的回應內容當中有出現某些特定字元。

我們關閉這個攻擊完的結果視窗,
到 Intruder -> Options -> Grep-Match,
先按Clear把原本的清除掉,
接著把我們剛剛確認登入成功後會出現的內容新增上去。

再按下攻擊,可以發現有多了一個欄位,
而這個欄位就是我們剛剛在Grep-Match的設定,
如果回應的內容當中有出現我們設定的字元,
這個欄位下的框框就會被打勾勾。

我們也可以點擊上方的Columns,看到有更多的欄位,
依據不同的場景與情況會使用上不同的欄位,
像是如果是使用Time-based的SQL Injection攻擊,
就會需要開啟Response received來幫助我們判斷是否成功。

我們也可以利用filter去篩選match字元,
點擊Filter,假設我們知道登入成功後的回應內容中會有welcome,
我們也可以輸入welcome幫助我們過濾出想要的內容。

接著第二個demo,我們來稍微試一下SQL Injection的,
先在DVWA把難度調到最低,選擇SQL Injection的測試項目,
隨便輸入一些內容,Burp攔截到之後送到Intruder。

接著Payload的地方,先推薦大家下面一個github,
雖然我其實很不建議新手使用這種Intruder用字典的方式來測試SQLi漏洞,
但今天目的只是想demo一下分析結果的方式,所以沒甚麼差。
這邊我Load的是SQL Injection中的Intruder->Auth_Bypass.txt
https://github.com/swisskyrepo/PayloadsAllTheThings

接著我們做個假設,假設SQLi語法有成功造成某些影響,
回應裡面可能會產生mysql或是syntax的字元,
所以依照剛剛的方法,我們在Grep-Match當中加入這兩個單字。

開始攻擊之後,有發現有出現這兩個回應的,
點選欄位的名稱可以排序,發現只有少少的兩個。

眉頭一皺,發現案情不單純,關閉再來一次,
這次我們來對我們的Payload進行一些變化,
到Payload Processing這邊,我們把空格去更換成+,
記得Match的欄位要輸入一個空格。

再跑一次攻擊,可以發現這次多了不少,
並且除了有mysql與syntax這兩個flag的以外,
當我們利用Length排序,也有意外的發現,
可以發現有個長度不太一樣,
點進去看其實可以發現是SQLi成功取得了數據內容。

第三個demo我們來收集一下cookie,
我們先隨便對DVWA的首頁丟出一個請求,
將這個請求送到Intruder。

接著來做一個很特別的操作,
我們把cookie的這一段內容移除掉,
並且全部的內容都不需要加上Position。

Payload Sets的地方我們選擇Null payloads,
可以不用產生太多,我們產生20個就好。

接著到Intruder -> Options -> Grep-Extract,
這邊要設定的其實就是我們要擷取回應中哪個「位置」的內容。
假設我們要收集或是我們想要知道的是回傳的cookie內容,
我們點選Edit進去,先按Fetch response,
接著利用滑鼠來去圈選出我們想要解析的內容的位置。
好了之後也可以看看上方確認,沒問題之後就按OK。

然後開始攻擊,可以看到攻擊之後的結果,
這邊重複了20個一樣的請求,
並且把每個回應中特定的位置的內容給顯示出來。

今天的內容就到這裡囉,
大家中秋節快樂啦!開開心心放假吧~

本系列的文章為作者參與第 12 屆 iT 邦幫忙鐵人賽的文章修改
原文連結
 https://ithelp.ithome.com.tw/users/20114110/ironman/3806

This Post Has 3 Comments

  1. 大头怪

    大佬,为啥后面的文章没有链接啊

    1. hackercat

      忘了更新XD

發佈留言