2022微信小程序安全測試指南_第1頁
2022微信小程序安全測試指南_第2頁
2022微信小程序安全測試指南_第3頁
2022微信小程序安全測試指南_第4頁
2022微信小程序安全測試指南_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

微信小程序安全測試指南目錄TOC\o"1-1"\h\u163491.微信小程序安全測試指南 3298081.1.一.概述 3290881.1.1指南概述 3254791.1.2注意事項(xiàng) 3253111.2.3微信小程序介紹 5290181.3.三.微信小程序測試指南 6156981.3.1微信小程序客戶端測試 6236483.1.1微信小程序架構(gòu)分析 6314283.1.2微信小程序客戶端功能模塊安全 8244823.1.3微信小程序源代碼提取 963633.1.4微信小程序源代碼分析樣例 101.微信小程序安全測試指南1.1.一.概述指南概述注意事項(xiàng)由于新技術(shù)新業(yè)務(wù)的發(fā)展速度較快,可能存在客戶要求的測試項(xiàng)不在指南中會(huì)有其他更好的替代方案,請(qǐng)積極探索并實(shí)踐;風(fēng)險(xiǎn)等級(jí)評(píng)定請(qǐng)按照業(yè)務(wù)需求評(píng)估,給出的定級(jí)進(jìn)攻參考;二.測試準(zhǔn)備MacMacOS系統(tǒng)WindowsWindows10常用工具列表名稱用途iTools下載安裝ipa,文件管理、越獄等ADBPC端與安卓手機(jī)進(jìn)行調(diào)試交互BurpSuite抓包分析工具Nmap端口掃描工具名稱用途AWVSWEB漏洞掃描工具SqlmapSQL注入工具中國菜刀Webshell連接工具wxappUnpacker小程序源代碼獲取工具1.2.3微信小程序介紹微信小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一下即可打開應(yīng)用,也體現(xiàn)了“用完即走”的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問題。應(yīng)用將無處不在,隨時(shí)可用,但又無需安裝卸載。對(duì)于開發(fā)者而言,小程序開發(fā)門檻相對(duì)較低,難度不及APP,能夠滿足簡單的基礎(chǔ)應(yīng)用,適合生活服務(wù)類線下商鋪以及非剛需低頻應(yīng)用的轉(zhuǎn)換。小程序能夠?qū)崿F(xiàn)消息通知、線下掃碼、公眾號(hào)關(guān)聯(lián)等七大功能。其中,通過公眾號(hào)關(guān)聯(lián),用戶可以實(shí)現(xiàn)公眾號(hào)與小程序之間相互跳轉(zhuǎn)。微信小程序與APP之間的區(qū)別下載安裝微信小程序:通過微信(掃描二維碼、搜索、分享)即可獲得;App:從應(yīng)用商店(AppStore、應(yīng)用匯等)下載安裝;內(nèi)存占用微信小程序:無需安裝,和微信共用內(nèi)存使用,占用內(nèi)存空間忽略不計(jì);App:安裝于手機(jī)內(nèi)存,一直占用內(nèi)存空間,太多的App可能會(huì)導(dǎo)致內(nèi)存不足;手機(jī)適配微信小程序:一次開發(fā),多終端適配;App:需適配各種主流手機(jī),開發(fā)成本大;(4)產(chǎn)品發(fā)布微信小程序:提交到微信公眾平臺(tái)審核,云推送;App:向十幾個(gè)應(yīng)用商店提交審核,且各應(yīng)用商店所需資料不一樣,非常繁瑣;功能區(qū)別微信小程序:限于微信平臺(tái)提供的功能;App:對(duì)硬件資源的利用更加淋漓盡致,可以做出功能、設(shè)計(jì)、效果和流暢程度遠(yuǎn)遠(yuǎn)超過小程序的軟件和服務(wù);傳輸要求微信小程序:必須使用HTTPS,且綁定域名需要備案,不能直接使用IP作為地址;App:依照開發(fā)商自主要求,HTTPS傳輸可選可不選;開發(fā)背景微信小程序:適合初創(chuàng)團(tuán)隊(duì),試錯(cuò)成本低,需要較少時(shí)間和資金投入;App:適合成熟的商業(yè)大公司,對(duì)自我品牌要求較高的企業(yè)。1.3.三.微信小程序測試指南1.3.1微信小程序客戶端測試微信小程序架構(gòu)分析微信小程序采用了框架化進(jìn)行開發(fā),主要分為視圖層、邏輯層、JSBridge。JS負(fù)責(zé)業(yè)務(wù)邏輯層的實(shí)現(xiàn),而視圖層則由WXML和WXSS來共同實(shí)現(xiàn),前者其實(shí)就是一種微信定義的模板語言,而后者類似CSS。從下面的微信小程序架構(gòu)圖上可以清晰的看出,小程序借助的是JSBridge實(shí)現(xiàn)了對(duì)底層API接口的調(diào)用,所以在小程序里面開發(fā),開發(fā)者不用太多去考慮IOS、安卓的實(shí)現(xiàn)差異的問題,安心在上層的視圖層和邏輯層進(jìn)行開發(fā)即可視圖層框架的視圖層由WXML與WXSS據(jù)反應(yīng)成視圖,同時(shí)將視圖層的事件發(fā)送給邏輯層。邏輯層邏輯層將數(shù)據(jù)進(jìn)行處理后發(fā)送給視圖層,同時(shí)接受視圖層的事件反饋。文件組成部分(一)一個(gè)小程序主體部分由三個(gè)文件組成,必須放在項(xiàng)目的根目錄:APP.js:小程序(全局)邏輯;APP.json:小程序(全局)公共設(shè)置,決定頁面文件的路徑、窗口表現(xiàn)、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間等;APP.wxss:小程序公共(全局)樣式表。(二)一個(gè)小程序頁面由四個(gè)文件組成:JS:頁面邏輯;WXML:頁面結(jié)構(gòu),框架設(shè)計(jì)的一套標(biāo)簽語言,結(jié)合基礎(chǔ)組件、事件系統(tǒng),可以構(gòu)建出頁面的結(jié)構(gòu);WSSWXMLWXML的組件應(yīng)該怎么顯示;JSON:頁面配置。從上述的架構(gòu)圖、文件組成部分來看,重點(diǎn)分析的就是小程序的邏輯層。而邏輯層主要的組成部分是由APP.js、APP.json、JS文件、JSON配置文件等組成,因此測試過程中主要分析的對(duì)象就是這一些。微信小程序客戶端功能模塊安全微信小程序客戶端功能模塊安全大致可以分為以下6個(gè)部分:網(wǎng)絡(luò)傳輸安全微信小成熟傳輸雖然使用HTTPS,并對(duì)訪問域名進(jìn)行校驗(yàn)控制,但如果后端服務(wù)器未做SSL雙向認(rèn)證,仍無法抵御攻擊者在本地安裝代理證書實(shí)施中間人攻擊的威脅。數(shù)據(jù)存儲(chǔ)安全本地?cái)?shù)據(jù)存儲(chǔ)采用(KEY,VALUE)形式存放在DB,數(shù)據(jù)的保護(hù)繼承了微信的數(shù)據(jù)庫加密防護(hù)策略。文件存儲(chǔ)安全HASH通過自定義算法實(shí)現(xiàn)完整性校驗(yàn)??蚣鼙旧戆踩嚎蚣苌侠^承了微信成熟的JSAPI框架和底層的TBS瀏覽器內(nèi)核,因此在未出現(xiàn)新的0DAY漏洞之前,整體的框架安全還是十分可靠;偽造小程序二維碼安全:掃碼功能依賴微信APP的原生的掃碼功能;生成小程序特定頁面的直達(dá)二維碼,依賴于ACCESS_TOKEN,而ACCESS_TOKEN是通過小程序私有的APPID和APPsecret請(qǐng)求得到,攻擊者無法獲知到APPsecret信息偽造生成二維碼;數(shù)據(jù)泄露安全小程序登錄體系可以依賴微信接口和公眾號(hào)平臺(tái),也可以由小程序自行實(shí)現(xiàn)。前者根據(jù)微信平臺(tái)的安全規(guī)范實(shí)施,由微信進(jìn)行整體的安全維護(hù),因此安全性較高。后者則由小程序自行控制安全性。從上述的客戶端功能模塊安全分析中來看,小程序客戶端本身的安全繼承了微信APP整體的安全建設(shè)。因此無需像傳統(tǒng)的移動(dòng)端測試對(duì)客戶端本身進(jìn)行測試,測試的重點(diǎn)還是在于服務(wù)端,即小程序與后端進(jìn)行交互過程中存在的安全風(fēng)險(xiǎn),基本上跟測WEB沒有區(qū)別。但是跟傳統(tǒng)黑盒測試WEB的區(qū)別是,在目前為止,可以非常簡單的提取到小程序的源碼信息。如小程序在傳輸過程中進(jìn)行了數(shù)據(jù)的加密傳輸,那么我們就可以通過源碼的分析來得出整個(gè)加密算法的技術(shù)流程。微信小程序源代碼提取pkg。在寫這篇指南的時(shí)間為止,提取出來的pkgpkg文件提取、逆向還原的難度。微信小程序在手機(jī)中存放的目錄如下:安卓:/data/data/com.tencent.mm/MicroMsg/不同微信號(hào)的值不同/appbrand/pkg蘋果:/var/mobile/Containers/Data/Application/不同微信號(hào)的值不同/WechatPrivate/c15d9cced65acecd30d2d6522df2f973/WeApp/LocalCache/release如果手機(jī)上打開了很多微信小程序,那么目錄中就會(huì)存在多個(gè)小程序pkg文件。第一種區(qū)分方法是按照修改時(shí)間來進(jìn)行區(qū)分。第二種方法是在微信頁面中刪除所有瀏覽過的小程序,重新打開需要進(jìn)行測試的小程序,那么目錄中只會(huì)存在一個(gè)pkg文件。安卓的提取方法如下,蘋果可以使用Itools工具直接拷貝。\h/qwerty472123/wxappUnpacker小程序逆向還原工具,依賴nodejs等,具體安裝、使用說明可以參照鏈接中的內(nèi)容。常用還原源碼命令:nodewuWxapkg.js–o–d目標(biāo)文件.pkg還原后的文件形式大致如下:文件夾中的HTML、WXSS等文件主要是存放了頁面結(jié)構(gòu)、小程序頁面樣式等內(nèi)容,重點(diǎn)分析的還是文件中JS文件,如小程序在與后端服務(wù)器進(jìn)行了加密傳輸,可以根據(jù)傳輸中的加密參數(shù)值進(jìn)行跟蹤,逐步分析參數(shù)是進(jìn)行如何加密方式。微信小程序源代碼分析樣例如下圖中的請(qǐng)求包,在請(qǐng)求包內(nèi)存在參數(shù)md5Data。該處請(qǐng)求包為登錄時(shí)的請(qǐng)求包,嘗試修改手機(jī)號(hào)為其他手機(jī)號(hào)進(jìn)行爆破,發(fā)現(xiàn)當(dāng)修改了手機(jī)號(hào)之后,服務(wù)端未報(bào)錯(cuò),提示驗(yàn)證失敗。那么這個(gè)md5Data參數(shù)就是傳輸過程中的校驗(yàn)參數(shù)值。如果我們能通過源代碼中獲取到md5Data參數(shù)的生成方式,那么我們就可以掌握整個(gè)傳輸過程中的加密方式,進(jìn)而可以更加深入的對(duì)該程序進(jìn)行分析。首先全局搜索md5Data關(guān)鍵字,發(fā)現(xiàn)在index.js中寫明了md5Data參數(shù)的生成過程。md5Data參數(shù)是由對(duì)象u+md5key這兩個(gè)參數(shù)進(jìn)行生成的。再全局搜索md5key這個(gè)關(guān)鍵字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論