微信小程序滲透測試技巧
隨著小程序數量的爆發式增長,其特有的安全風險也逐步凸顯出來。本文基于微信小程序測試過程中的解包及抓包的技巧,總結下微信小程序安全測試的思路。

1、小程序解包(反編譯)
(1)安裝手機模擬器,比如說夜神、MuMu

(2)下載和安裝兩個應用,微信和RE文件管理器

(3)獲取root權限

(4)打開微信,搜索相對應的小程序,然后再打開RE文件管理器,定位到目錄:

(5)下載微信小程序反編譯腳本,解包。
https://github.com/xuedingmiaojun/wxappUnpacker.git
解主包:
./bingo.sh 主包.wxapkg
解分包:
./bingo.sh 分包.wxapkg -s=主包目錄
合并分包內容,成功獲取小程序前端源碼。
基于小程序的前端源碼,我們可以從JS敏感信息泄露、隱藏接口漏洞等方向進行漏洞挖掘。
2、小程序抓包
抓取數據包是小程序安全測試中最關鍵的一步。抓包的方式有多種,比如使用Android內核版本7.0以下的模擬器,通過XPosed+JustTrustMe抓包;使用微信版本7.0以下通過Burp CA抓包。
這里分享一個比較簡單的方法,使用Charles進行小程序抓包。
(1)環境準備
本機電腦開啟Wifi共享,將自己手機和電腦連上同一個wifi。
(2)Charles設置:
下載地址:
https://www.charlesproxy.com/download/
第一步:配置HTTP代理,設置代理:主界面—Proxy—Proxy Settings
選擇在8888端口上監聽,然后確定。勾選了SOCKS proxy,還能截獲到瀏覽器的http訪問請求。

第二步:配置SSL代理:首先在charles的 Proxy選項選擇SSL Proxy Settings

第三步:為手機設置代理
在手機接入電腦wifi,配置手動代理,輸入安裝Charles的電腦的網絡地址,端口填8888。以IOS為例,在Safri上打開Charles的根證書下載網址: chls.pro/ssl ,點擊允許,開始下載。

第四步:SSL 代理設置,在Proxy-SSL Proxying Settings,添加域名

到這里完成設置,通過手機訪問就可以看到獲取到小程序的數據包。
基于小程序的數據包,我們可以看到前后端業務交互的過程,重點關注業務邏輯漏洞、API 接口可能存在的安全漏洞。