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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論