说明:某新闻APP sign 参数
抓包发现包含内容:
url: https://124.*.*.*/api/categorynews/lists
参数: 其中 sign 参数是需要变化的否则访问失败,其余都是固定的
'page': '3',
'size': '10',
'category': '-2',
'from': '-1',
'lng': '116.363364',
'lat': '40.109662',
'app_id': '220525165346815301',
'appCurrentVersion': '7.7.1',
'platformPublic': 'Android',
'phoneModel': 'google Pixel',
'systemOS': '8.1.0',
'timestamp': '1669463060',
'channelPackage': 'pro',
'deviceId': '257f8bc39cb4f5c113aa76fb2cb1b788',
'sign': '2c2a90f6641b4c837db9b5d8072c078e',
1、好开始,先查下APP有没有加固,还好没有加固
2、使用 jadx 进行反编译,搜索 "sign" 关键代码
3、点击进去查看源代码,可以看到用到了app_id、 entry.getKey()、ContainerUtils.KEY_VALUE_DELIMITER 这些
4、其实现在基本就已经看出来了,用了MD5 用了哪些参数很多都是固定的,剩下跟访问页面的参数有关和时间戳,objection 动态直观的HOOK下
5、结果如下 看看传入的参数和返回的参数,看见没 app_id 固定、category 窗口不同栏目对应的code 、page页数、时间、时间后面拼接的是用户ID 固定的在源码里一搜索就有,那接下来frida直接hook 就行了这个比较简单嘿嘿,活着测试下md5是不是魔改后的 自己搞一个直接变参数就行了。