2、Burp Suite進階web
1、Burp Scanner主要用於自動檢測web系統的各類漏洞。首先,確認Burp Suite正常啓動並完成瀏覽器代理的配置。而後進入Burp Proxy,關閉攔截代理功能,快速瀏覽須要掃描的域或URL模塊,此時在默認狀況下,Burp Scanner會掃描經過代理服務器的請求,並對請求的消息進行分析來辨別是否存在系統漏洞。並且當咱們打開Burp Target時,也會在站點地圖中顯示請求的URL樹。數據庫
隨便找一個網站進行測試,選擇Burp Target的站點地圖選項下的連接,在其連接URL上右擊選擇」Actively scan this host「,此時會彈出過濾設置,保持默認選項便可掃描整個域。跨域
也能夠在Proxy下的HTTP history中,選擇某個節點上的連接URL並右擊選擇Do an active scan進行掃描,此時Burp Scanner開始掃描,在Scannner界面下雙擊便可看到掃描結果。瀏覽器
咱們能夠在掃描結果中選中須要進行分析的部分,將其發送到repeater模塊中,進行模擬提交分析和驗證。緩存
當scanner掃描完成後,能夠右擊Burp Target站點地圖選項下的連接,依次選擇」issues「——」Report issues「選項,而後導出漏洞報告。安全
Burp Scanner有主動掃描和被動掃描。服務器
(1)主動掃描cookie
當使用主動掃描模式時,Burp會嚮應用發送新的請求並經過Payload驗證漏洞。這種模式下的操做會產生大量的請求和應答數據,直接影響服務端的性能,一般用於非生產環境。主動掃描適用於如下這兩類漏洞:session
客戶端的漏洞,如XXS、HTTP頭注入、操做重定向。工具
服務端的漏洞,如SQL注入、命令行注入、文件遍歷。
對第一類漏洞,Burp在檢測時會提交input域,而後根據應答的數據進行解析。在檢測過程當中,Burp會對基礎的請求信息進行修改,即根據漏洞的特徵對參數進行修改,模擬人的行爲,以達到檢測漏洞的目的。對第二類漏洞,以SQL注入爲例,服務端有可能反回數據庫錯誤提示信息,也有可能什麼都不反饋。Burp在檢測過程當中會採用各個技術驗證漏洞是否存在,例如誘導時間延遲、強制修改Boolean值、與模糊測試的結果進行比較,以提升漏洞掃描報告的準確性。
(2)被動掃描
當使用被動掃描模式時,Burp不會從新發送新的請求,只是對已經存在請求和應答進行分析,對服務端的檢測來講比較安全,一般適用於生產環境的檢測。通常來講,下列漏洞在被動模式中容易被檢測出來
提交的密碼爲未加密的明文。
不安全的cookie的屬性,例如缺乏HTTPOnly和安全標誌。
cookie的範圍缺失。
跨域腳本包含和站點引用泄露。
表單自動填充,尤爲時密碼。
SSL保護的內容緩存。
目錄列表。
提交密碼後應答延遲。
session令牌的不安全傳輸。
敏感信息泄露,例如內部IP地址、電子郵件地址、堆棧跟蹤等信息泄露。
不安全的viewstate的配置。
錯誤或不規範的content-type指令。
雖然被動掃描模式相比主動模式有不少不足,但同時也具備主動模式不具有的優勢。除了對服務端的檢測比較安全,當某種業務場景的測試每次都會破壞業務場景的某方面功能時,可使用被動掃描模式驗證是否存在漏洞,以減小測試的風險。
2、Intruder
Intruder是一個定製的高度的可配置的工具,能夠對web應用程序進行自動化攻擊,如經過標識符枚舉用戶名、ID和帳戶號碼、模糊測試、SQL注入、跨站、目錄遍歷等。
它的工做原理是Intruder在原始數據的基礎上,經過修改各類請求參數獲取不一樣的請求應答。在每一次請求中,Intruder一般會攜帶一個或多個有效攻擊載荷(Payload),在不一樣的位置進行攻擊重放,經過應答數據的比對分析得到須要的特徵數據。Burp Intruder一般被應用於如下場景。
標識符枚舉。web應用程序常用標識符引用用戶、帳戶、資產等數據信息。例如,用戶名、文件ID和帳戶號碼。
提取有用的的數據。在某些場景下,不是簡單地識別有效標識符,而是經過簡單標識符提取其它數據。例如,經過用戶的我的空間ID獲取全部用戶在其我的空間的名字和年齡。
模糊測試。不少輸入型的漏洞(如SQL注入、跨站點腳本和文件路徑遍歷)能夠經過請求參數提交各類測試字符串,並分析錯誤信息和其它異常狀況。來對應用程序進行檢測。受限於應用程序的大小和複雜性,手動執行這個測試是一個耗時且繁瑣的過程,所以能夠設施Payload,經過Burp Intruder自動化地對web應用程序進行模糊測試。
利用Intruder爆破無驗證碼和次數限制的網站的方法。前提是你得有比較好的字典。注意,Burp suite的文件不要放在中文的路徑下。首先將數據包發送到Intrude模塊中。Burp會自動對某些參數進行標記,這裏先點擊clear$按鈕清除全部標記,而後選擇要進行暴力破解的參數值,將pass參數選中,單擊add$按鈕。
sniper模式使用單一的payload組。它會針對每一個位置設置payload。這種攻擊類型適用於對常見漏洞中的請求參數單獨進行fuzzing測試的情景。攻擊中的請求總數應該是position數量和payload數量的乘積。
battering ram模式使用單一的payload組。它會重複payload並一次性把全部相同的payload放入指定的位置中。這種攻擊適用於須要在請求中把相同的輸入放到多個位置的情景。請求總數是payload組中payload的總數。
pitchfork模式使用多個payload組。攻擊會同步迭代全部的payload組,把payload放入,每一個定義的位置中。這種攻擊類型很是適合在不一樣位置中須要插入不一樣但類似輸入的狀況。請求的數量應該是最小的payload組中的payload數量。
cluster bomb模式會使用多個payload組,每一個定義的位置中有不一樣的payload組。攻擊會迭代每一個payload組,每種payload組合都會被測試一遍。這種攻擊適用於在位置中須要不一樣且不相關或者未知輸入攻擊hi情景。攻擊請求的數量是各payload組中payload數量的乘積。
選擇字典,開始爆破並等待爆破結束。查看status或length的返回值進行排序,查看是否有不一樣之處。若是有,查看返回包是否顯示爲登錄成功,若是返回的數據包中有明顯的登錄成功的信息,則說明已經破解成功。
3、Repeater
Burp Repeater是一個手動修改、補發個別HTTP請求,並分析它們的響應的工具。它最大的用途就是能和其它Burp Suite工具結合起來使用。能夠將目標站點地圖、Burp Proxy瀏覽記錄、Burp Intruder的攻擊結果,發送到Repeater上,並手動調整這個請求來對漏洞的探測或攻擊進行微調。
Repeater分析選項有4種:Raw、Parans、Headers和Hex。
Raw:顯示純文本格式的消息。在文本面板的底部有一個搜索和加亮的功能,能夠用來快速定位須要尋找的字符串,如出錯消息。利用搜索欄左右的彈出項,能控制情況的靈敏度,以及是否使用簡單文本或十六進制進行搜索。
Params:對於包含參數(URL查詢字符串、cookie頭或者消息體)的請求,Params選項會把這些參數顯示爲名字/值的格式,這樣就能夠簡單地對它們進行查看和修改了。
Headers:將以名字/值的格式顯示HTTP的消息頭,而且以原始格式顯示消息體。
Hex:容許直接編輯由原始二進制數據組成的消息。
在滲透測試過程當中,咱們常用Repeater進行請求與響應的消息驗證分析。在Repeater的操做界面中,左邊的Request爲請求消息區,右邊的Response爲應答消息區,請求消息區顯示的是客戶端發送的請求消息的詳細信息。當咱們編輯完請求消息後,單擊」GO"按鈕便可發送請求給服務端。應答消息區顯示的是對對應的請求消息單擊「GO"按鈕後,服務端的反饋信息。經過修改請求信息的參數來比對分析每次應答消息之間的差別,能更好地幫助咱們分析系統可能存在的漏洞。
4、comparer
Burp Comparer在Burp suite中主要提供一個可視化的差別對比功能,來對比分析兩次數據之間的區別,使用到的場合有:
枚舉用戶名的過程當中,對比分析登錄成功和失敗時,服務端反饋結果的區別。
使用Intruder進行攻擊時,對於不一樣的服務端響應,能夠很快分析出兩次響應的區別在哪裏。
進行SQL注入的盲注測試時,比較兩次響應消息的差別,判斷響應結果與注入條件的關聯關係。
使用Comparer時有兩個步驟,先是數據加載,而後時差別分析。
Comparer數據加載的經常使用方式以下所示。
從其它Burp工具經過對上下文菜單轉發過來。
直接粘貼。
從文件里加載。
加載完畢後,若是選擇兩次不一樣的請求或應答消息,則下方的比較按鈕將被激活,此時能夠選擇文本或字節比較。
5、Sequencer
Burp Sequencer是一種用於分析數據樣本隨機性質量的工具。能夠用它測試應用程序的會話令牌(session token)、密碼重置令牌是否可預測等場景,經過Sequencer的數據樣本分析,能很好地下降這些關鍵數據被僞造的風險。
Burp Sequencer主要由信息截取(live capture)、手動加載(Manual load)和選項分析(Analysis Options)三個模塊組成。
在截取信息後,單擊Load按鈕加載信息,而後單擊」Analyze now「按鈕進行分析。