- 工具推薦
- 反編譯wxapkg
- 動態調試WeChatOpenDevTools
- 小程序所在目錄
- 如何逆向小程序的js加解密
- 靜態分析
- 動態調試
- 動靜結合
工具推薦
反編譯wxapkg
- https://github.com/wux1an/wxapkg
微信小程序反編譯工具,這個工具進行的是靜態逆向分析
他是根據你小程序.wxapkg文件進行反編譯
直接scan命令,可以按方向箭選擇你要掃描的小程序
選擇好回車就開始掃了
然後工具的當前目錄下就會生成掃描好的內容,裏面大部分都是js文件,可以進行靜態分析一些加解密和路由之類的。
動態調試WeChatOpenDevTools
- https://github.com/JaveleyQAQ/WeChatOpenDevTools-Python
這個工具是方便在打開小程序後,能讓小程序像網頁一樣f12打開調試- 有一個風險就是你的賬號可能被列為風控賬號不允許你繼續訪問某些小程序之類的,請謹慎,最好是開小號來調試。
直接運行:WechatOpenDevTools-Python.exe -x就可以一鍵開啓小程序調試了
- 有一個風險就是你的賬號可能被列為風控賬號不允許你繼續訪問某些小程序之類的,請謹慎,最好是開小號來調試。
問題1:你已經打開了小程序,後打開這個調試工具,你可能在右上角三個點打開的時候沒有發現可調試的那個按鍵,這時候需要你重新打開當前的小程序即可
重新打開,可以隨便一個小程序都行,反正你已經將動態調試的那個exe運行起來了
問題2:如何查看版本
問題3:如果你找到小程序的那個目錄數字不在下面圖中的範圍,你需要退出該小程序重新登錄,反覆重複這個操作,實在不行就卸載微信重裝一下。
把這這幾個刪除,這裏其實就是對應的你小程序,刪除了沒有關係,在你打開小程序的時候他會重新加載。
刪除之前要退出微信登錄才能刪除!!!!
依舊是:如果重複這個操作還沒行,那就直接卸載微信重裝一下。
小程序所在目錄
微信小程序存放位置,在微信設置中打開可以看到
來到該目錄後,退到上一層目錄
進入Applet目錄
這些wx開頭的文件目錄都是小程序加載的
隨便點一個進去看,後綴名是wxapkg的就是小程序,我們一般的工具都會對該文件進行靜態分析拿到一些源碼之類的。
如何逆向小程序的js加解密
在滲透小程序的時候你會發現數據包的數據通常是加密的,響應包是加密的,啥東西都獲取不到怎麼辦??這就是和js加解密一樣的方法,小程序這裏也一樣的分析即可。
靜態分析
直接拿反編譯工具反編譯出來進行代碼審計,不僅審計過程中可能會發現一些存儲桶key或者其他的一些秘鑰。
-
抓包後,發現數據都是加密過的怎麼辦?
直接靜態分析,找你這個包的對應的路由,分析代碼中一些關鍵字,通過關鍵字定位到加密代碼
加密代碼找到後,解密代碼一般也在附近,如果沒有隻能手寫逆向解密腳本。 -
響應包也加密了?
靜態分析找到解密函數即可。
動態調試
動態調試的好處是我們找到加密函數和解密函數直接在console上調用就行!!
-
抓包後,發現數據都是加密過的怎麼辦?
動態調試就方便很多了,打斷點後,定位加密函數,可以在console中複製這個函數,將他加密的變量修改為自己要加密的數據,看看運行成不成功即可,成功就代表你找到了該加密函數,而且動態調試過程中,你是能看到加密前的內容的,只要按照那個內容模板自己修改想要的內容即可,那麼這時候就可以打很多不同的漏洞了,比如top10的都可以等,靠自己發揮。
-
響應包也加密了?
動態調試的時候如果響應包加密了,那麼一般情況下也是能夠動態調試到的,因為他也要解密才能將內容渲染到前端,也是在附近找一下對應那個加密函數的解密函數即可。
動靜結合
一般情況下,能夠反編譯小程序了,那靜態分析的差不多了,利用動態調試的好處,能夠直接運行對應的js代碼,那麼我們直接找到加密函數解密函數直接在console上執行即可,腳本都不用寫了。