记某app使用autodecoder插件绕过加密数据包+重放防护

举报
亿人安全 发表于 2024/11/30 21:41:31 2024/11/30
【摘要】 原文首发在:先知社区https://xz.aliyun.com/t/160930x01、起因某天大师傅dd我,帮忙看一眼某资产的app下载下来看后,抓包,数据包加密了,并且存在sign+nonce+时间戳虽然经常会去处理app的加密数据包,只会针对特定接口测试,手动生成sign去重放数据包太懒了始终没整合进插件里自动替换测试过趁这次机会精进一下autodecoder的插件使用就是费脑子,一整...

原文首发在:先知社区

https://xz.aliyun.com/t/16093

0x01、起因

某天大师傅dd我,帮忙看一眼某资产的app

图片

下载下来看后,抓包,数据包加密了,并且存在sign+nonce+时间戳

虽然经常会去处理app的加密数据包,只会针对特定接口测试,手动生成sign去重放数据包

太懒了始终没整合进插件里自动替换测试过

趁这次机会精进一下autodecoder的插件使用

就是费脑子,一整个下午才搞定插件+接口,太菜了

图片

0x02、经过

思路梳理

下载了ios和android两个版本的app,发现存在flutter,使用小黄鸟vpn模式抓包

经过抓包判定,发现该app的对抗策略ios远大于android,存在fingerprinthash,类似于风控

ios的object c逆向成本太高,放弃

数据包类似于这样

图片

与其慢慢翻代码,不如偷点懒,果断启动算法助手,暴力hook全局算法

很幸运,这款app的算法没有在so层和js层,直接写在了java层

看一眼便知道了加密逻辑 && 密钥

图片

至于为什么要用真机,因为有些app不但对root环境进行检查测(好绕),还会对虚拟机环境检测(难绕)

手动对照了几次,大致梳理了一下加密逻辑和生成sign的逻辑

图片

通过源码对照,nonce为uuid,timestamp为正常时间戳

在ios和android上抓包验证,采用相同密钥均可以解密,证明思想和密钥无误

图片

技术实现

这里采用f0ng师傅的autodecoder的burp插件

https://github.com/f0ng/autoDecoder

根据要求,我们实现的是自实现的接口加解密

配置如下图所示

图片

图片

为什么要勾上对数据包头进行处理。当你多阅读即便官方提供的模板源码,就明白了

如果不勾上,实际测试getheaders获得的所有数据都是空的

官方demo

https://github.com/f0ng/autoDecoder/blob/main/flasktestheader.py

ps:严重吸取教训,别自主主张,老老实实按demo来

先实现简单解密的路由接口

decrypt_aes_data为自定义函数,懂得都懂,师傅们凑合着写,不踩坑就行

图片

再实现加密路由

修改post内容----》生成新的nonce+时间戳----》生成新的sign----》替换----》生成新的加密主体

踩坑点:
此处我们获取的json数据,有转义字符串,直接在python里aes解密会加上无关的东西
得先strip()一下
千万别用re模块自动去掉转义字符串!!!血泪教训

图片

然后正则匹配里也自以为聪明的踩坑了,这里把大小写都加上了(尴尬)

图片

为什么最终return的是enc_body,因为明文是给自己看的,服务端还是要密文

在接口测试中,成功加解密+实现sign/nonce/时间戳自动替换

图片

0x03、结果

在burp的intruder的模块成功实现自动爆破,完事!

图片

亿人安全
知其黑,守其白。手握利剑,心系安全。主要研究方向包括:Web、内网、红蓝对抗、代码审计、安卓逆向、CTF。
185篇原创内容
公众号
小程序 · 目录
上一篇【SRC】记录一次从小程序静态分析+动态调试获取到严重漏洞的过程
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。