1. 程式人生 > >微信小程式漏洞:可下載任意微信小遊戲原始碼

微信小程式漏洞:可下載任意微信小遊戲原始碼

本文轉載自【小專欄平臺】公眾號,由獨立開發者朱鵬飛投稿如果大家想要微信跳一跳小遊戲以及其他十幾個小遊戲原始碼,大家可以關注【小專欄平臺】公眾號,回覆“微信小遊戲”即可獲取到。

截止原作者目前推送文章的時候( 2018年1月1日23:50分 ),微信官方已經修復了這個漏洞,但是我感覺文章還是可以分享出來給諸位開發者,安全問題真的不容忽視呢。

另外說兩點:

1、據說有些老版本的微信還是可以抓包獲取包地址;

2、如果你喜歡小程式並且是小程式的開發者,可以關注我的github資源:https://github.com/justjavac/awesome-wechat-weapp 點選文章末尾的閱讀原文

可以訪問

一、發現

一大早起來刷 V2EX,看到一個帖子《微信跳一跳 可以直接更改分數, POST 請求沒有校驗…》 https://www.v2ex.com/t/419056  好奇點進去看了。

發現不但跳一跳小遊戲可以直接改分數,甚至連微信小程式、小遊戲的原始碼都可以直接下載,只需要知道 appid 和 版本號,就可以直接構造 URL 下載字尾為 wxapkg 的原始碼包,不需要任何驗證。

雖然下載來的原始碼包是加密的,但是解密方法已經被 V2EXer 發現,並且寫了一個解密的 Python 指令碼,執行即可把原始碼包解開為資料夾。

二、重現

第一步,我先試著用帖子作者拼接好的跳一跳原始碼包地址測試,發現能夠下載,不需要任何驗證,只需要知道這個地址,直接任意瀏覽器或者下載工具開啟都可以下載。

第二步,再用帖子中的解包 Python 指令碼把原始碼包解壓成原始碼。

第三步,在本地微信開發者工具中新建一個空白的小程式或小遊戲的專案,不要選擇快速啟動模板。

第四步、把剛才解壓出來的原始碼複製到剛剛建立的專案目錄中,開發者工具會提示編譯出錯,這個只需要新建一個game.json檔案即可。

檔案內容不能為空,寫一對大括號進去,或者加上deviceOrientation的配置,這句話的意思是遊戲豎屏玩。

儲存後你發現遊戲還是編譯不通過,還需要修改最後一項,點選開發者工具右上角詳情按鈕,把除錯基礎庫改成game。

好了,執行起來了:

如果有同學對微信官方的小遊戲原始碼感興趣,想要研究學習,那麼可以在本微信公眾號回覆“微信小遊戲”,在確保不違法情況下,我可以發給你用於研究學習。