背景

相信很多小夥伴在日常APP安全測試的過程中都會遇到數據包被加密的情況,如

對於像我這種不會拖殼、逆向的菜雞來說,是很痛苦的,frida的hook老是不成功,寫的代碼總是運行不起來,別說有多痛苦了,最後找啊找,終於找到了一款xposed的插件Xserver(此處膜拜作者一萬年)可以圖形化及自動化的協助我們hook想要hook的方法,從而可以協助我們遇到數據加密的場景下對內容進行解密,從而幫助我們繼續測試下去,(其實此工具能實現的絕對不止數據加解密,只是平常遇到較多的是這種而已)

(備註:我不是工具作者,我只是工具的搬運工,本文只是一篇工具使用科普而已。。。大佬勿噴)

測試環境

WIN10

逍遙模擬器

Xposed

使用步驟

由於Xserver  是一款基於Xposed的HOOK框架,所有Xposed的安裝是必須的,針對逍遙模擬器,可直接在其應用商店安裝即可,

Xserver的安裝地址 https://github.com/monkeylord/XServer

安裝完成後,進入Xserver,會提示模塊未激活,

此時可以進入xposed裏面看下是否進行了勾選

然後重啓模擬器在進入就不會再有提示了,如果還不行,請重裝xposed

一切就緒後先通過ADB連接模擬器

緊接着,需要將Xervser的web端口轉發到本地,默認是8000端口

需要注意的是,如果轉發了8000端口本地還訪問不到,那可能因爲某些原因它初始化的時候沒有在8000上,所以這個時候需要通過找PID的值進行轉發。

這樣子就已經轉發成功了,這時候進入Xserver選中待測試的APP

然後回到桌面,打開被選中的待測試APP後,在本地訪問127.0.0.1:8000,即可成功hook的web界面了

接下來主要介紹兩個功能,一個是trace,訪問地址是 http://localhost:8000/tracer

一個是hook,訪問地址是 http://localhost:8000/invoke

模擬器設置好burp代理,打開待測試的APP,抓包發現返回是加密的

此處的思路是返回包被加密,那麼程序裏一定有一個函數或方法會對其進行解密,且一般的解密的函數命名都有decry之類的字符(只是一般情況下),因此只需對對應的解密函數進行hook就好了,所以我們要做的就是首先加載APP的所有的方法

點擊此按鈕,加載APP所有的方法

可以看到成功加載了9W+方法,然後盲猜對應的解密方法中有decry之類的字符,進行匹配

可以看到總共有33個方法,那我們就直接**多所有的方法進行hook,這時回到APP,隨意發起網絡請求

從burp的返回中我們可以看到返回的內容是加密的

不過沒關係,我們再去到hook的web界面中可以看到數據包已經被解密出來了,對應的加解密方法、解密密鑰也在其中

圖中的字符爲unicode編碼,此時只需要再轉碼一次即可

說完tracer,就該說說invoke了,我對他的理解就是,可以直接脫離測試APP本身,直接通過Xserver進行調用前面hook的方法進行使用,如回到剛剛tracer那裏,我們可以看到已經輸出了APP中對應的解密方法,因此點擊可直接進入此方法的view

此時我們只需要將對應的參數填進欄目裏即可,此時的參數就是從trace中輸出的相關參數,注意不要把#號也copy進去

配置好參數後,點擊invoke,即可看到burp中攔截到的請求

此時將數據包放過去即可

相關文章