微信小程序滲透測(cè)試技巧
隨著小程序數(shù)量的爆發(fā)式增長(zhǎng),其特有的安全風(fēng)險(xiǎn)也逐步凸顯出來(lái)。本文基于微信小程序測(cè)試過(guò)程中的解包及抓包的技巧,總結(jié)下微信小程序安全測(cè)試的思路。

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

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

(3)獲取root權(quán)限

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

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

第二步:配置SSL代理:首先在charles的 Proxy選項(xiàng)選擇SSL Proxy Settings

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

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

到這里完成設(shè)置,通過(guò)手機(jī)訪問(wèn)就可以看到獲取到小程序的數(shù)據(jù)包。
基于小程序的數(shù)據(jù)包,我們可以看到前后端業(yè)務(wù)交互的過(guò)程,重點(diǎn)關(guān)注業(yè)務(wù)邏輯漏洞、API 接口可能存在的安全漏洞。


