當前位置:
首頁 > 最新 > 如何使用 Burp 代理調試安卓應用中的 HTTP 流量

如何使用 Burp 代理調試安卓應用中的 HTTP 流量

一切似乎都符合規範,但應用程序還是不能正常工作? 沒關係,我們發現的Burp代理調試HTTP(S)流量的方法絕對是最佳之一!它既不需要源代碼訪問,也不需要開發技能。如果你曾經開發過使用HTTP(S)API的應用程序,你可能遇到過一些情況,比如伺服器響應400 Bad Request,或者應用程序沒能解析對拋出帶有未知消息異常的回應,比如Unterminated string at line 1 column 57345,我們不知道哪個地方出現了錯誤。應用程序各方面都符合規範,但並不能正常工作。本文將介紹調試這種情況的一種方法—Burp代理。

什麼是Burp代理?

官方解釋:

Burp代理允許測試人員手動攔截瀏覽器和目標應用程序之間的所有請求和響應,即正在使用HTTPS時也可以進行攔截。事實上,我們可以使用Burp代理攔截應用程序之間的請求和響應!

局限性

由於Android Nougat(牛軋糖)版本會更改受信任的證書頒發機構,所以本教程可能不適用於所有情況。Burp官方推薦使用Android舊版本,而不是Nougat新版本或根版本。但是,如果目標SDK版本是23或更低,那麼前面提到的改動就不適用。即使一個設備使用的是Android新版本,或者更新的版本或者是應用程序達到API 24或更新,該應用程序也可以提供自己的網路安全配置。此外,如果應用程序使用的是證書鎖定,如,用okhttp鎖定,HTTPS代理將不會起作用。

設置

首先,下載並啟動Burp套件(有足夠的免費的、共享版)。如果可以,將Burp加入防火牆白名單上。然後啟用代理模塊:

圖1 Burp代理

選項窗口說明,機器運行代理必須從移動設備或正在測試的AVD中訪問,它們可以在同一個WiFi網路中(無線客戶機隔離必須被禁用)。在Burp選項中選擇適當的介面,並使用OK按鈕確認。現在代理正在運行,我們可以配置移動設備來使用它。訪問WiFi設置,長按適當的SSID(網路名稱)並選擇修改網路選項。然後,輸入如圖2所示的代理IP和埠。

圖2 SSID設置彈出

如果應用程序只使用HTTP,而不是HTTPS,彈出的是所有的設置。但是,在大多數現代應用程序中,需要遵循下一節。

HTTPS

我們需要更多的步驟來支持HTTPS。首先,在移動設備上打開瀏覽器應用,轉到代理IP地址並下載CA證書:

圖3 代理網頁

然後,將CA證書文件的擴展名更改為.cer(如果在接下來的步驟中不起作用,用.pem作為擴展名)。

圖4 CA證書文件重命名

最後,可以安裝一個證書。轉到安全設置,並找到從存儲中安裝證書的選項。由於設備製造商和Android版本的不同,該選項的確切位置和名稱也會有所不同。選擇一個合適的文件,並使用Wi-Fi憑證類型來安裝證書:

圖5 CA證書安裝

檢查結果

需要檢查證書安裝結果,所有選項都已經設置好後,下一步開始調試。我們將嘗試檢查官方Wikipedia(維基百科)應用程序的流量。在這裡需要注意,我們不需要修改應用程序,甚至不需要源代碼。只需打開該應用,然後轉到Proxy -> Intercept 選項卡。重要的是,在後台運行的其他應用的流量也會被攔截。可以點擊Forward使其他應用的流量通過。示例結果如圖6所示。

圖6 代理攔截選項卡

通過單擊按鈕上的攔截,可以禁用攔截功能。在這種情況下,代理將轉發所有內容。請注意,是所有的請求和響應,無論是否被攔截或沒被列入HTTP歷史標籤:

圖7 HTTP歷史

我們可以看到整個請求,包括HTTP頭。除了檢查HTTP頭的內容,我們還可以進行以下幾項行動:

刪除——請求不會被發送到伺服器

修改——內容的整個區域是可編輯的,內容可以改變

轉發——請求(可能被修改)將被發送到伺服器

開放的動作菜單——見圖8。

圖8 攔截行動

可以看到,Burp套件有很多特性(甚至還有有關於它的書籍)。對我們來說,最重要的一個特性是比較突出明顯的。如果選擇並轉發請求,那麼響應也將被攔截。在應用程序上使用之前還可以對其進行修改。

改變Burp套件

理論上可以改變Burp套件,下面開始進行實踐。例如,可以在請求中修改與語言相關的頭部。要實現這一修改,只需要編輯Accept-Language和Host標頭。在本例中,英語(對應於設備上的語言環境設置)被改為法語:

圖9 請求編輯

轉發這樣的請求後,獲得一個英語應用程序,但是內容是法語:

圖10 法語內容的英語應用程序

響應也可以被修改。例如,我們可以在文章中插入額外的文本:

圖11 響應編輯

轉發這類回應後,我們可以看到它在應用程序中得到了反映:

圖12 被修改的維基百科

總結

HTTP(S)代理是一個非常強大的工具。它允許檢查、攔截和修改請求和響應。這在應用程序調試中可能會有很大幫助,甚至可以在商店安裝的應用程序上使用。如果HTTPS被用於Android新版本或更新版本,那麼限制可能會存在,但是Burp代理將會被完善!Burp套件具有用戶友好的窗口界面,使用起來非常方便。既不需要源代碼訪問,也不需要開發技能。

文章轉自嘶吼


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 聚鋒實驗室 的精彩文章:

OSX.CpuMeaner:針對macOS平台的新型挖礦木馬

TAG:聚鋒實驗室 |