前言
行動應用程式的安全測試是現代滲透測試中不可或缺的一環。隨著行動裝置的普及,越來越多的敏感資料透過行動應用程式進行傳輸。Burp Suite 作為業界標準的 Web 應用程式安全測試工具,同樣可以有效地應用於行動應用程式的安全測試。本文將詳細介紹如何使用 Burp Suite 對 Android 和 iOS 應用程式進行安全測試。
1. 行動應用測試概述
1.1 測試範圍
行動應用程式安全測試主要涵蓋以下幾個面向:
- 網路通訊安全:分析應用程式與後端伺服器之間的通訊
- 資料儲存安全:檢查本地儲存的敏感資料
- 認證與授權機制:驗證身份認證與權限控制的實作
- 加密實作:評估加密演算法的使用是否正確
- 商業邏輯漏洞:測試應用程式特定的業務流程
1.2 測試環境準備
進行行動應用測試前,需要準備以下環境:
| |
1.3 Burp Suite 基礎設定
首先,確保 Burp Suite 正確設定監聽介面:
| |
2. Android 代理設定
2.1 Wi-Fi 代理設定
對於 Android 裝置,可以透過 Wi-Fi 設定來配置代理:
- 進入 設定 > Wi-Fi
- 長按連接的網路,選擇「修改網路」
- 展開「進階選項」
- 設定代理為「手動」
- 輸入 Burp Suite 主機的 IP 位址和連接埠
| |
2.2 使用 ADB 設定代理
對於需要頻繁切換代理的情況,可以使用 ADB 命令:
| |
2.3 ProxyDroid 應用程式
對於 root 過的裝置,可以使用 ProxyDroid 進行更靈活的代理設定:
| |
3. iOS 代理設定
3.1 Wi-Fi 代理設定
iOS 裝置的代理設定步驟:
- 開啟 設定 > Wi-Fi
- 點選已連接網路旁的 (i) 圖示
- 捲動到底部,點選「設定代理伺服器」
- 選擇「手動」
- 輸入伺服器位址和連接埠
3.2 設定檔安裝
對於企業環境,可以透過 MDM 設定檔來配置代理:
| |
3.3 使用 Surge 或 Shadowrocket
對於 Jailbreak 裝置或需要更進階控制的情況:
| |
4. SSL Pinning 繞過
4.1 什麼是 SSL Pinning
SSL Pinning(憑證綁定)是一種安全機制,應用程式會驗證伺服器憑證是否符合預期的憑證或公鑰。這可以防止中間人攻擊,但同時也會阻礙安全測試。
4.2 使用 Frida 繞過
Frida 是一個強大的動態分析框架,可以用來繞過 SSL Pinning:
| |
使用 SSL Pinning 繞過腳本:
| |
執行繞過腳本:
| |
4.3 使用 Objection 繞過
Objection 提供了更簡便的繞過方式:
| |
4.4 使用 apktool 修改 APK
對於靜態修改的方式:
| |
修改 network_security_config.xml:
| |
重新打包並簽署:
| |
5. 憑證安裝與信任
5.1 匯出 Burp Suite CA 憑證
| |
5.2 Android 憑證安裝
Android 7.0 以上版本需要將憑證安裝為系統憑證:
| |
對於 Android 14+ 系統:
| |
5.3 iOS 憑證安裝
iOS 憑證安裝步驟:
| |
對於 Jailbreak 裝置:
| |
6. 攔截 HTTPS 流量
6.1 基本攔截設定
在 Burp Suite 中設定攔截規則:
| |
6.2 設定 TLS Pass Through
對於某些需要保持原始連線的情況:
| |
6.3 處理非 HTTP 流量
使用 Burp Suite 的 Invisible Proxying:
| |
6.4 監控 WebSocket 流量
| |
7. 常見漏洞測試
7.1 不安全的資料儲存
測試本地儲存的敏感資料:
| |
7.2 認證繞過測試
使用 Burp Suite Intruder 測試:
| |
測試 JWT Token 漏洞:
| |
7.3 API 安全測試
測試常見 API 漏洞:
| |
SQL Injection 測試:
| |
7.4 商業邏輯漏洞
測試價格篡改:
| |
測試數量限制繞過:
| |
8. 自動化測試整合
8.1 Burp Suite REST API
使用 Burp Suite Professional 的 REST API 進行自動化:
| |
8.2 整合 CI/CD Pipeline
GitHub Actions 範例:
| |
8.3 使用 Burp Suite Extensions
安裝與使用常用擴充套件:
| |
8.4 自動化測試腳本
完整的自動化測試腳本:
| |
總結
本文詳細介紹了如何使用 Burp Suite 進行行動應用程式安全測試,涵蓋了從環境設定、代理配置、SSL Pinning 繞過到自動化測試整合的完整流程。以下是關鍵要點的摘要:
- 環境準備:確保 Burp Suite、模擬器或實體裝置、以及相關工具都正確安裝配置
- 代理設定:根據不同平台(Android/iOS)選擇合適的代理配置方式
- SSL Pinning 繞過:使用 Frida、Objection 或修改 APK 等方式繞過憑證驗證
- 憑證管理:正確安裝和信任 Burp Suite CA 憑證
- 漏洞測試:系統性地測試常見的行動應用安全漏洞
- 自動化整合:將測試流程整合到 CI/CD pipeline 中,實現持續安全測試
行動應用安全測試是一個持續演進的領域,建議定期關注最新的測試技術和工具更新,以確保測試的有效性和完整性。