Crack App | 某新闻 app 注册 token 加密逻辑分析

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Crack App | 某新闻 app 注册 token 加密逻辑分析

今日目标

aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzY2Mjk5Mzg=

抓包分析

在内容列表的请求包里面的有token这个参数值

但是在开始的这个init包里面没有这个token

在开始的这个init请求之后的所有的包都带有token这个参数

猜测是开始的init包带有的加密返回值有这个token参数,就类似设备注册的意思

所以分析的重点从列表页移动到了开始的init包里面

查壳与脱壳

先看看这个app的壳能不能搞

好像有点难搞,先用寒冰大大的FART试试

试了下开源版的frida_fart,提示进程终止,应该是没了,可能是我的姿势不对,有知道的大佬评论区指点一下

于是我换北风哥的脱壳机试了一试,于是我找北风哥 py 了一下,舒服~

北风哥也提示了我可以用frida-dexdump试试,并且fart也是可以的,操作提示如下

在北风哥的提示下,我研究一下用frida-dexdumpijm企业版

拖完发现没有北风哥脱得全,应该还是我的姿势不对,所以接下来我还是用北风哥脱得 dex 分析

加密逻辑分析与定位

因为由init这个请求返回的data的加密,所以以init为关键词搜索

看了几个位置,感觉相关性都不高

想了一下用token作为关键词检索,发现结果是在太多了,有1800+多个相关的结果,最后还是在inits里面找到了

在这个位置点进去,然后通过InitParam声明的地方找到下面的位置

那么在请求头中的siganature可能就是这里获取到的,通过getSign关键词找到下面这个位置

所以在header中的siganature就是getSign(),然后在这个位置出入m.c并将结果阶段传入e.a

但是通过wallbreak只看到下面的代码

这样感觉没办法搞啊,经过一番寻找,还得是旧版的app牛逼

在旧版的app里找到下面的代码

照着和新版对比一下就知道,e.aDES.decrypt,然后m.cMD5

既然是这样的话就很简单了

按照这个思路复写应该就可以了

key是由这里的逻辑生成的

这里用到的APP_SECRET_AKEY和时间戳多次MD5得到 key

ps:就在上图逻辑的上方,新旧版本相同

得到key之后,解密入参的是请求返回的密文 data

python可以实现解密

可以看到在结果里面取到token

简单总结

这个app磕磕绊绊了很久,在新版的加密上琢磨了很久,钻了牛角尖,如果早点分析旧版估计很快就分析出来了

所以之后如果不是必要还是不要死磕新版,不仅加固牛逼,混淆也很厉害,还有检测,我用fridaobjection都没办法spawn的方式启动app

唉,又是被APP教做人的一天。

感谢北风哥,2h 大佬等众多哥哥的脱壳测试。

End.

以上就是全部的内容了,咱们下次再会~

相关文章
|
4月前
【Azure 应用服务】App Service频繁出现 Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener 异常分析
【Azure 应用服务】App Service频繁出现 Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener 异常分析
|
1月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
3月前
|
存储 NoSQL Java
|
3月前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
4月前
【Azure Logic App】消费型逻辑应用在消费Service Bus时遇见消息并发速度慢,消息积压
【Azure Logic App】消费型逻辑应用在消费Service Bus时遇见消息并发速度慢,消息积压
|
4月前
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
|
4月前
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
|
4月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
4月前
|
API 网络架构
【Azure Logic App】在中国区的微软云服务上,使用逻辑应用是否可以下载SharePoint上的文件呢?
【Azure Logic App】在中国区的微软云服务上,使用逻辑应用是否可以下载SharePoint上的文件呢?
【Azure Logic App】在中国区的微软云服务上,使用逻辑应用是否可以下载SharePoint上的文件呢?
|
4月前
|
安全 API 网络架构
【Azure Logic App】使用 Easy Auth 在标准逻辑应用(Standard Logic App)中触发工作流
【Azure Logic App】使用 Easy Auth 在标准逻辑应用(Standard Logic App)中触发工作流