路人甲 · 2016/04/18 10:18html
Burp不只僅能在Web應用的測試中使用。我也在移動端和傳統客戶端測試時常用。對於採用HTTP方法發送數據的應用,Burp是你的最佳選擇。java
我要寫下一系列在我工做中給我幫助的那些Burp的提示和技巧。寫出來爲了與你們分享,也爲了留着備忘。git
在撰寫此文時Burp Pro的最新版本是1.6.39,大多數狀況下應用的Burp Free的最新版本是1.6.32。我最初使用的是Burp 1.5,自此版本以後Burp並無太大改變。github
當我最初準備寫時,我沒有想到Burp有這麼多可寫的。因此我把它拆分紅多個部分。請注意,這篇文章不是在寫Web應用測試,因此我會跳過一些功能不作介紹。若是你有任何好用的提示或用例,一如既往的,咱們歡迎反饋。web
Burp支持請求/響應包的攔截和修改。你能夠在Proxy > Options 中配置這些設置。正則表達式
有時候爲了手動修改你不得不攔截響應數據包。設置在Proxy > Options > Intercept responses based。將第一條規則的複選框取消,不然二進制payload有可能不被攔截。windows
Burp支持爲攔截請求/響應數據包制定規則。當有多重流量通過Burp時,你只想將某些特定節點的流量攔截下來時,這將很是有用。在Proxy > Options 中能夠看到規則Intercept Client / Server Requests。這個預約義的規則只能攔截域內的請求。你也能夠添加你本身的規則,規則支持正則表達式來匹配內容和包頭。瀏覽器
你能夠在Proxy > Options > Match and Replace 中找到匹配與替換。這意味着你能夠在請求/響應數據包中按照你的要求進行替換。我一般用用來替換User-Agent。另外一種方法不須要打補丁就能繞過客戶端控件在響應數據包中自動進行更改。例如,若是服務器響應登陸是否成功,我定義了一條規則來將登陸失敗響應修改成成功響應,來繞過登陸(這隻有在服務器不關心你的登陸是否成功時起做用)。緩存
這是一個Burp被低估的功能,在Proxy > Options > SSL Pass Through中能夠找到。安全
Burp這個功能的實現,不是像中間人攻擊同樣,而只是像一個非終端的TLS代理。
若是你想開啓代理,可是代理卻沒有工做。你能夠把這個節點加入 SSL Pass Through中,看這個問題是否與Burp有關。
傳統客戶端會在不一樣的節點混合使用HTTP和非HTTP協議的流量是很常見的。Burp能夠在非HTTP鏈接中架起中間人,能夠靜默的丟包或者改包。這將會致使應用程序出現故障。首先應該識別終端節點,而且把它們添加進SSL Pass Through 中。能夠看一個實踐案例
你可使用這些功能使Burp變成一個快速簡單的端口轉換器。假設你想要鏈接一個客戶端,這個客戶端經過1234端口發送給遠端服務器所監聽的5678端口。若是你不但願本身寫代碼實現,又不但願使用其餘工具來重定向端口。把Burp放在1234端口上開代理,使用hosts文件或其餘操做系統特有的文件來重定向這個終端節點到本地。在Burp中你能夠經過設置Request Handling 來讓代理重定向所有流量到某個終端節點的不一樣端口。將這個終端節點添加進SSL Pass Through 中。
這些中的大多數可能只是對於Web應用有效。
Convert HTTPS links to HTTP 和 Remove secure flag from cookies 和Force use of SSL都是Request Handling中的好工具。若是在應用或者瀏覽器和Burp之間禁用TLS,設置爲Secure的Cookie將不會再傳輸,app也會中止工做。當使用Cookie設置響應頭時,Burp能夠移除Secure標識。
我運行了Burp而後設置好了代理,運行應用卻沒有反應。而後我意識到啓動Burp時默認已經開啓了攔截。
Proxy > Options > Scroll all the way to the bottom > Under Miscellaneous > Enable interception at startup > Always disable.
Burp監聽以前流量通過的那個端口。默認爲127.0.0.1:8080,你也能夠自行設置。你可讓新的代理監聽其餘網口或者所有網口。惟一的限制是另外一個程序就不能使用被選定的網口的這個端口了。
代理監聽能夠在Proxy > Option > Proxy Listeners設置。
添加一個新的監聽很容易,只須要點擊Add便可。本地環回是127.0.0.1或localhost。若是你想讓Burp監聽另外一個網口,就能夠在這裏進行選擇。若是想代理移動設備這就很是有用了。在這種狀況下,我會建立一個監聽爲0.0.0.0或者選擇All interfaces,這些和移動設備共享的網口(例如Windows hostednetwork)
咱們能夠在Import/export CA certificate 或Regenerate CA certificate來導入/導出一個新的呃Burp的根證書。更多信息請參考。若是你從新生成根證書,你必須在操做系統或瀏覽器的證書存儲區使用新證書替代舊證書。
這個功能對於非Web應用很是有用。假設傳統客戶端使用hosts文件鏈接www.google.com:8000,並且我開啓了代理。在這個文件中,www.google.com被重定向到127.0.0.1,我又建立了一個Burp監聽在8000端口。如今我須要將所有流量重定向到原始狀態(www.google.com:8000)。一種方法是在Redirect to host 和 Redirect to port中分別指定爲www.google.com 和 8000。
若是應用在同一端口鏈接不一樣的節點(例如,咱們想代理流量經過80端口或者443端口),咱們就不能重定向流量了嗎?咱們須要在Options > Connections > Hostname Resolution中設置,在下一個部分我將會解釋。
若是我使用Burp將流量導入另外一個代理工具,好比Fiddler或Charles,這也是有用的。
當我想要在Burp和應用之間把TLS剝離出來,或者我想把它加進去的時候Force use of SSL這個選項就有用了。有一個我時常參考的文檔實例。
更多信息請看上面連接中的2.2.1和2.2.2部分。老實說,跟着這整個系列來看Burp怎麼做爲代理來工做,你將會避免出現許多問題。
若是咱們代理了一個代理敏感的客戶端,它將會在實際啓用TLS傳輸前發送鏈接請求給想要鏈接的目標。這會通知代理該往哪重定向流量。這是由於代理沒法看到TLS層加密的TCP流量包。因爲不知道怎麼處理流量,CONNECT解決了這個問題。代理敏感的客戶端會把代理視爲瀏覽器。
非代理敏感的客戶端就不在乎他們的流量是否通過了代理。大多數這種程序都不使用代理設置或系統代理設置。程序依舊認爲它在節點間直接發送流量,並無被重定向到Burp。Burp能夠將TLS層的數據代理並解密數據包,在包中經過頭中的host字段找到原始節點。這就是Burp的透明代理。
能夠在Proxy > Options開啓。選擇代理監聽,點擊編輯,在Request Handling 中選擇Support invisible proxying (enable only if needed)。
我常常用它來捕獲應用和Burp之間的本地流量,判斷應用是否發送鏈接請求。另外一種方法是都嘗試一下,看哪一個好使。
咱們能夠配置Burp的中間人證書。
我歷來沒有在內存不夠的電腦上運行Brup。可是我一般會在一天結束的時候保存工做狀態,我不會大量使用Python/Ruby的擴展,而是YMMV。 經過命令行來給Burp分配2GB的內存:
java -jar -Xmx2048m /burp_directory/burpsuite_whatever.jar
理想狀況下,你想添加應用程序的終端節點到Scope,這會幫你過濾掉其餘無用的噪聲。
把終端節點添加到Scope中很容易,右鍵單擊一個請求,而後選擇Add to scope便可。而後你就能夠在Target > Scope中看到你剛剛添加的請求。
只有你指定的那個URL才能進入Scope中,這很方便。例如,我選擇使用GET請求獲得Google的圖標,而且添加其到Scope中。Google.com剩下的數據包將不會包含在Scope中,你必須手動添加。
另外一種方法是複製URL粘貼過來。若是咱們右鍵點擊任何位置的任何請求,咱們都能經過點擊右鍵菜單中的Copy URL來複制這個請求的URL地址。咱們能夠在Scope中點擊Paste URL來把這個請求置入Scope。這個按鈕在其餘位置出現也具備相似的功能。
咱們一般不止是須要一個請求。一般是整個節點,或者肯定的整個目錄。幸運的是,在指定Scope時,咱們可使用正則表達式。我一般使用上述方法之一將URL添加進Scope中,而後經過編輯按鈕來對其修改。
Scope中有四個選項:
若是咱們想要添加Google和它的全部子域到Scope中,咱們要添加這個Logo(或者任何Google的東西)到Scope中,而後編輯這個請求。
在Proxy > HTTP History中能夠看到Burp全部捕獲的請求和響應。我幾乎一半的時間都花在了這兒。咱們可使用過濾器來篩選數據包,過濾器的設置能夠在Filter: Showing all items調整,你能夠根據你不一樣的需求來調整你的設置。我通常都是清空這些狀態從新開始。
最有效的過濾是Show Only in-scope items,這將會把不在Scope裏的數據包都清除掉。
正如你在上圖中看到的,過濾器具備不少設置選項。大部分的設置都很是簡單易用,我要講解的是那些我在非Web應用中經常使用的設置。
Burp有一個特別好的掃描模塊,它雖然不像IBM的Appscan那樣優秀的覆蓋面和準確度,可是它的優點體如今非Web應用測試。
掃描結果在Issue activity選項卡中顯示,在Target > Site map縱覽全局結果則更爲直觀,掃描請求都在Scan queue中。
Burp有兩種掃描模式,主動掃描和被動掃描。兩種掃描狀態能夠同時開啓。 在被動掃描中,只關心請求和響應的數據包,僅僅經過規則進行匹配掃描,不發送任何請求。在主動掃描中,能夠產生有效的測試載荷發送到服務器,同時分析其請求和響應。
在此能夠對其進行配置:
在這裏你能夠配置這些掃描設置。儘管我不使用實時主動掃描,這些選項也能夠用來配置對單個請求的掃描。
入侵模塊是Burp的半自動掃描部分。能夠右鍵單擊任何一個請求發送到入侵模塊,在入侵模塊中你能夠指定注入點,以後可使用內部掃描器來進行掃描,或者使用你本身的載荷。
發送載荷到入侵模塊後,在Intruder > Positions標籤頁中看獲得注入點。我一般先Clear掉全部設置,而後使用Add來對本身設置的注入點進行標記。
正如你所見,我選擇以前用過的Google的Logo再次發送到入侵模塊。而後清除掉全部的預約義的注入點和已經添加的文件名。如今咱們能夠右鍵點擊並選擇Actively scan defined insertion points來將其發送到掃描模塊,不只掃描注入點還可使用Start Attack來用我本身設計的載荷進行注入。由於我沒有選擇任何載荷,第二項是不會起效果的。
如今咱們能夠設置咱們本身的載荷來配置入侵模塊進行攻擊。切換到Payloads選項卡。
在這,咱們可使用不一樣的載荷。Burp能夠知足你在特殊狀況下進行一些複雜的負載設置。例如,Recursive grep可讓你在先前載荷的響應中獲得每一個載荷。還有Case modification、Character substitution、Dates和Numbers等等。
Simple list容許你對全部的注入點都使用本身的載荷。在有載荷的源文件中複製到Payload Options中。你能夠直接選擇使用這個文件。
Runtime File經過點擊Load按鈕來加載一個文件。你也可使用Burp自帶的負載列表,但彷佛只有Pro版本纔有。
Custom iterator(自定義迭代器)可讓Burp生成更加複雜的載荷。若是我想要模擬兩個本身的十六進制(四個字符),我能夠在一個位置上設置0-9和a-f在其餘位置上也相似的設置。Burp容許你設置八個位置。若是你想添加用戶名,能夠選擇五個位置,添加本身的用戶名列表。Burp也支持位置間使用分隔符。
一個流行的載荷列表是FuzzDB。須要注意的是,這些載荷基本都會觸發反病毒軟件的報警。
在進行測試以前,你能夠對載荷進行轉換處理。例如,你能夠將載荷進行base64編碼再發送,或者發送其hash。
咱們能夠在Request Engine限制入侵模塊的速度,就像掃描模塊那樣,或者減慢其速度。Payload Encoding能夠在Burp中對特殊字符進行URL編碼。
咱們能夠查找帶有特定字符串的響應。若是我在進行SQL注入測試,我就能夠尋找帶有SQL錯誤信息的那些響應。對於XSS,我一般使用9999進行測試,以後只要在響應中匹配9999便可。
FuzzDB有本身的正則表達式來分析響應,這個頁面展現瞭如何使用它們。
雖然這些模塊沒有不少功能,可是也至關有用。
重放模塊是爲了手動測試而設計的,掃描模塊是自動化,入侵模塊是半自動化。
將請求發送到重放模塊和以前相似。咱們能夠修改請求,發送請求而後觀察響應。
我選擇Google的Logo的GET請求,發送到重放模塊而後發送它。咱們能夠對其進行修改,而後查看其404響應和一些無效文件。用Ctrl+Z能夠撤銷此次更改。
你能夠將修改過的數據包發送到掃描模塊或者入侵模塊進行進一步掃描。
容許使用不一樣的格式進行編碼或解碼。也支持建立其哈希。雙擊任何一個參數右鍵發送至解碼模塊。你也可使用Ctrl+C複製其到解碼模塊。
比較模塊能夠對兩個載荷、兩個HTTP請求或響應進行比對。能夠在字節水平(一般是二進制對象)進行比對,也能夠在字的水平進行比對(一般是文本)。
這個模塊是用來配置Burp進行更復雜的工做。
若是應用程序須要特殊形式的身份驗證,如NTLM或Basic,你均可以在這裏進行配置。若是你須要在瀏覽器中進行身份驗證,那麼你能夠不須要進行修改。你將會在Burp中看到消息頭的部分,意味着你不須要每次登陸應用時都輸入它們。若是你須要使用某種平臺進行身份驗證,Burp對傳統客戶端都是有幫助的。
有時你的工具並不支持對其進行設置,我在使用Appscan時就存在這個問題,儘管Appscan支持平臺身份驗證。
你能夠重定向你其餘工具的流量到Burp,讓Burp承擔起這個責任。我不是暗示它們會生成大量的流量,可是形勢所迫,你必須使用Appscan。若是驗證失敗,錯誤消息將顯示在Alerts選項卡中。
開啓Prompt for credentials on platform authentication failure,保證在認證失敗時能夠迅速傳遞給瀏覽器。
我已經講了不少關於Burp如何做爲一個代理鏈中的一部分。咱們要在這裏對通過Burp轉發的請求進行設置。這對聯合代理服務器環境下的Burp使用是很是有幫助的。一般狀況下,這些代理服務器是自動配置的。這些設置能夠訪問Tools (menu) > Internet Options (menu item)> Connections (tab) > LAN settings (button)來更改IE的代理設置。一般在Use automatic configuration script中可以對proxy auto-config和pac文件進行配置。檢索PAC文件而且在文本編輯器中查看,應該能看到代理地址:端口格式的配置。
使用SOCKS代理是相似的。根據細則,這將會覆蓋以前的代理設置。就我我的而言,我歷來沒有對Burp的Socks代理進行配置。
對老服務器進行測試,應該增長超時設置,若是Burp是代理鏈中的一部分,就要增長超時的設定,以修正延誤。
我在以前簡要討論過。若是應用使用多個端口還不支持代理服務器設置。咱們就要將應用程序的流量重定向到Burp。如今Burp須要知道這些流量將要被轉發到哪,不然它會陷入本地迴環的無限循環中。
由於Request Handling只支持一個節點,咱們不能使用它。正相反,咱們會將其置空,並添加節點及其關聯的IP地址在Hostname Resolution中。例如,server.com和10.11.12.13。若是節點通過負載均衡、CDN或者像亞馬遜的S3共享主機,就會更加複雜。在這種狀況下,不通過代理,運行一個Wireshark或者Netmon來捕獲應用程序的流量。發現HTTP請求發送目的地的IP地址。使用這個IP在host頭字段中發揮做用。有許多方法能作到這一點,可是我以爲這個方法是最簡單的。
咱們能夠指定Burp把不屬於域內的請求所有丟棄。若是咱們設置了正確的域範圍,就能夠下降流量噪聲,這會對咱們有利。若是應用程序鏈接了除了咱們正在測試的節點外的其餘節點,這樣就增長的域的範圍,它可能會中止工做。若是你是一個沒有使用過Burp的人,又不想讓這個功能起做用,你能夠在此指定。除此以外,我沒以爲它有多麼有用,我從未使用過此功能。
Redirections和Status 100 Responses都很簡單,我就跳過了這個部分
這是一個被低估的功能,特別是對非Web應用測試來講。當咱們要使用這個功能時,先讓咱們看看代理是如何工做的。我曾經寫過一篇文章解釋這件事兒。
總之,下面是流程:
須要注意的是,這個圖和HTTPS請求不一樣。
如今假設http://downloads.hipchat.com/blog_info.html
是個大文件(好比是100MB的更新),應用程序須要請求下載。該應用程序將此文件做爲流,根據下載完成的數據量顯示一個進度條。
若是咱們代理這個請求,Burp會執行步驟四。直到下載完成,Burp纔會將此數據發送到應用程序中。這意味着應用程序會等待此文件,可能就放棄等待了,並從新發送請求或者返回超時或凍結。若是咱們添加http://downloads.hipchat.com/blog_info.html
到Streaming Responses部分,Burp就會在接收到數據時當即把響應傳遞給應用程序。
Server SSL Certificates只顯示從服務器中檢索的證書列表。使用命令行工具像Openssl就能夠很容易的獲得證書,可是我猜你也想在這裏查看證書信息。
不管如何,安裝其都是個好主意,可是你也能夠在Burp中使用無限長度的密碼。要確保你運行的是最新版的Java運行環境(JRE)。
除了Disable Java SNI extension啓用全部選項,只有當你須要SNI的時候再啓用。Allow unsafe renegotiation看起來有點嚇人,可是當使用客戶端證書的時候,這很是有用。
在代理期間,若是你不確信當前TLS設置是否工做,你須要時刻留意Alerts標籤頁。若是TLS我收失敗或者Burp和服務器沒法完成TLS握手,就會有錯誤提示。對於錯誤請看這個頁面。
若是應用程序須要客戶端證書,咱們也能夠很是容易地添加。咱們能夠選擇目的host和Burp對應這個host使用的證書。
這個選項卡提供給咱們許多自動化的東西。你能夠建立宏。你能夠進行一些操做而後把它們記錄下來錄製爲宏。以後在中, 你能夠在肯定的域內或對特定的請求來選擇要運行的宏。例如,你能夠建立用於登陸的宏,這樣Burp能夠在你發送請求前就登陸。還能夠建立一個帶有特定值的參數,並將其添加到每一個請求,或者在必定範圍內的請求,或者自動改變參數的值。
你能夠更改字體、編碼和其餘一些能夠更改的東西。不加贅述。
在這裏大多數項目不須要任何解釋。若是你有Pro版,我建議你開啓Automatic Backup。我一般將其設置爲每小時存檔而且退出時存檔。由於,我但願能夠天天保存狀態的備份,我也開啓了Include in-scope items only,這大大減小了保存數據的體積。 若是你須要在測試期結束時回頭檢查一些東西,或者你的帳戶被鎖定時,你能夠回檔。 計劃任務會容許你作一些計劃。例如你能夠設置掃描模塊在什麼時候啓動。若是你不想或者不能天天掃描,那就讓它在特定的時間進行掃描吧。不幸的是,做爲計劃任務不容許運行宏,而且可選項也很是有限
這是一項新功能。默認設置在Use the default collaborator server。這是我很是不喜歡的一個功能,每次我新安裝完Burp總要去修改這個設置。我不太清楚它會把什麼信息傳到服務器中,因此我寧願別發送客戶端信息到默認的服務器。你也能夠選擇運行,詳細的能夠閱讀文檔
報警標籤頁也是重要的。特別是在TLS鏈接問題或是超時。若是這個標籤亮起時,要注意這個標籤。
Burp支持擴展,擴展能夠用Java、Python或者Ruby編寫。不幸的是,沒有不少非Java開發的擴展。我的來說,我更喜歡Python。我能夠從讀其餘人編寫的擴展中學到更多。
這個選項卡會顯示當前被加載的擴展。它還能顯示這些擴展的輸出和錯誤。在擴展加載以後,就要關注它的錯誤頁面運行中是否存在錯誤。添加擴展很是簡單,單擊添加,而後選擇類型和擴展文件的路徑。我一般把這些都放在Burp目錄的一個子目錄內。
在Burp的app store中安裝插件是一件垂手可得的事情。只須要切換到該選項卡,選擇擴展名而後單擊安裝。若是該擴展是用Python編寫的,你必須安裝Jython才能運行。若是不方便安裝,Burp很方便的提供了下載Jython按鈕。
單擊下載按鈕打開此頁,下載最新的Standalone Jar。我一般把它放在和Burp相同的目錄中。以後在Extender > Options中,能夠選擇Python Environment > Location of the Jython standalone JAR file其做爲你的運行環境。
如今就能夠點擊安裝按鈕進行安裝了。
APIs選項卡中有API文檔。Burp擴展可使用這些API來與Burp進行交互。正如你在那些爲Java擴展編寫的文檔裏看到的。
正如以前所見,咱們能夠爲Jython和JRuby設置路徑。咱們也能夠爲Java和Python編寫的擴展指定目錄。在Burp啓動時,這些擴展所在的目錄會自動加載。
使用到的應用程序
Cygwin + IBM Appscan Standard + Charles Proxy + Fiddler + SoapUI
你不須要使用Burp的Pro版,IBM Appscan 也用的是評估版。全部的應用都是無償使用的。
通常狀況下,應用程序有本身的代理設置或者使用IE的代理設置,咱們都可以使用Burp來進行代理。
在開始以前,要確保你在操做系統證書存儲區安裝了Burp的根證書。
Burp的默認代理監聽在127.0.0.1:8080
Cygwin是一個Windows下的類*nix命令行。使用Cygwin能夠很方便的運行不少程序,好比git或Curl。由於在一個API測試中,我須要使用一系列Curl命令。爲了方便,我經過Cygwin來執行。重定向到Burp中,而且在測試中將使用到重放模塊。
爲了在Cygwin中安裝Curl,咱們須要運行Cygwin的安裝文件,而且在可用的包列表中選擇curl。這和包管理器的功能是類似的,而且支持搜索功能。因此安裝Curl是很是容易的。安裝文件會自動下載其依賴。
我要用再次使用GET請求再一次來取回Google的Logo。使用Burp模擬一些Curl命令來完成這個最簡單的任務。重定向瀏覽器的流量到Burp,並訪問Google首頁。確保你清除了瀏覽器緩存,不然將不會發送請求,你也看不到請求了。選擇Logo圖片的那個請求,右鍵點擊Copy as curl command。
結果應該與下面相似:
curl -i -s -k -X 'GET' \ -H 'Referer: https://www.google.com/' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko' -H 'DNT: 1' \ -b 'NID=78=S4kjzm5kwP82gAN8xazSJCiG6UWZhRNEGEE_a3hHZ2OMcy5bPX1CjZisClbvBgPUodlcpywR6WyhVSRUykloTI3ay7jSy9fpgTG2tKV2s8eojpQmL_F5sYKyHP1exm8iwp0F_FEnnE_DaQ' \ 'https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'
咱們不須要關心這麼多項,咱們能夠忽略Referer、Cookie、User-Agent和其餘一些沒用的東西。
curl -i -s -k -X 'GET' 'https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'
-k意味着Curl將不會驗證證書的安全性。在使用Burp時,有時候會很是必要,由於Burp自簽發的證書有可能失效。若是你想使用其餘Curl命令,必定要記得加上-k來保證不出現任何問題。
這很簡單,咱們只須要執行如下命令:
export http_proxy=http://127.0.0.1:8080 export https_proxy=http://127.0.0.1:8080
衆所周知,這是一個Web應用掃描軟件。有時候我會將其重定向到Burp上,爲了練習,咱們將使用評估版,在撰寫本文時,版本是9.0.3。咱們必須註冊一個免費的IBM ID才能得到軟件,我相信這對你來講並不難。
評估版只能掃描IBM的示例網站http://demo.testfire.net/
,不過這就足夠了。
在Appscan中,咱們能夠在Scan Configuration > Connection > Communication and Proxy設置代理。這和Firefox的代理設置相似,咱們也可使用IE的代理,或是爲Appscan指定一個特定的代理。咱們有兩種方法,第一種是經過IE代理,第二種是直接設置代理。
如今,咱們能夠重定向Appscan的流量到Burp了,也能夠進行一些手動探索了。試用版軟件可讓咱們這樣作,可是不要把它添加進掃描中。若是咱們有Appscan的受權版本,咱們能夠運行一個掃描。在Burp中能夠看獲得掃描的流量通過。
或者,你也有可能想把其餘的流量導入Appscan中。例如,使用額外的瀏覽器或者其餘工具,你能夠在Tools (menu) > Options > Recording Proxy (tab) > Appscan proxy port中設置導入端口。你也能夠經過選擇,來指定你本身設置的端口。在手動探索時Appscan只是起到監聽功能。
你能夠安裝導入Appscan的根證書了。
有時候,你須要使用兩個或兩個以上的代理來組成代理鏈。我如今將要給你介紹最流行的HTTP代理。
咱們先下載並安裝一個免費試用的版本,在截稿時,版本是3.11.4。出於演示目的,我會使用IE和普通的Google主頁。事實上流量能夠來自咱們關心的任何位置,只要代理成功,其他東西都是相同的。
要確保你安裝了Charles的根證書,你能夠在Help (menu) > SSL Proxying設置。
首先你要在Proxy (menu) > Windows Proxy關閉Charles的自動代理設置。若是系統代理是開啓的,就會在下拉菜單中有一個小小的標記。在Proxy (menu) > SSL Proxying Settings (sub-menu) > SSL Proxying (tab)中確保Enable SSL Proxying是被選中的。點擊添加,在HOST和PORT上填入*。在Proxy (menu) > Proxy Setting (sub-menu) > Proxies (tab)裏咱們能夠查看HTTP代理端口,默認是8888端口,咱們也能夠指定其餘端口。
試用版本會每隔三十分鐘從新啓動,就會再次開啓自動代理。確保每次啓動後你都要禁用它。你也可使用Firefox來代替IE代理設置。
在Burp中,能夠在Options > Upstream Proxy Servers添加上行代理服務器爲127.0.0.1:8888
如今能夠在IE中打開Google的主頁了,能夠看到流量通過了Burp和Charles。
咱們只須要將IE的代理設置改成Charles,即127.0.0.1:8888。幸運的是就算Charles每隔三十分鐘重啓,可是它不會重置設置。
Charles要在Proxy (menu) > External Proxy Settings (sub-menu)確保開啓了Use external proxy servers。要將Web Proxy (HTTP)和Secure Web Proxy (HTTPS)都輸入Burp的代理監聽(127.0.0.1:8080)
設置完成,能夠打開主頁了。
Fiddler的好處在於其能夠添加腳本,咱們使用的是4.6.2.2這個版本。
首先,咱們要在Tools (menu) > Fiddler Options (sub-menu) > HTTPS (tab) > Decrypt HTTPS traffic設置Fiddler能夠捕獲HTTPS流量。這將會在Windows證書存儲區安裝Fiddler的根證書。這將會讓Fiddler捕獲而且解密所有通過代理的流量。還要確保Ignore server certificate errors (unsafe),由於Burp多是不被認可的。
切換到Gateway標籤頁,選擇Manual Proxy Configuration而且在上面的輸入框中輸入http=127.0.0.1:8080;https=127.0.0.1:8080,這將會將Fiddler的流量導入到Burp。
如今設置完成,能夠訪問首頁了。
你也能夠在Tools > Fiddler Options > Connections (tab)手動更改Fiddler的代理設置。
首先要禁用Fiddler的自動代理,而且把Gateway中的所選項刪除。若是使用IE代理設置,記得選擇No Proxy,不然又會回到Burp。以後咱們設置Burp是IE的代理,Fiddler是Burp的上游代理。
這個部分我已講過,請參見。
做者的案例要寫在第五部分,不知道會連載幾期