在测试APP的时候有时候会遇到参数加密的情况,这样就会导致不能修改请求参数,很多漏洞都测试不了了。一般常用的方法是把APP放到jadx中脱出源码,然后在源码中找到对应的加密算法,这种方法遇到没加壳的APP还好,但是遇到加密的APP或者代码混淆的APP就很头痛了。Xserver的应用场景就是免脱壳,将明文数据先代理到Burp中,然后在传输到APP中进行加密

下载地址:https://github.com/monkeylord/XServer

##0x02 应用
环境:雷电模拟器3.90.0

安装Xposed+Xserver然后模块中激活Xserver

原始的APP请求数据

Xserver中选择需要Hook的APP

然后重启APP,进入雷电模拟器的根目录,执行命令.\adb.exe forward tcp:8000 tcp:8000

启动刚刚选择的APP后访问http://127.0.0.1:8000,如果出现如下界面就算配置好了

在Filter中可以过滤当前APP的类,这里我们需要找到加密的类,例如:AES、DES
搜索AES关键字,找到了两个类

然后点击Load All Methods以及右边的Class单选框

这里可以看见encrypt方法,点击左边的选框就可以Hook它

然后对APP随便操作几下,发送几个请求,下方就会出现Hook到的方法

点击进入这个方法,就把流量转发到Burp中了

Burp中的明文数据

修改方法名,可以解密数据