速通某 app 数据包加密
0x01 前言
在burp抓包的时候,发现数据包被加密了…
抠脑壳
0x02分析过程
本来反编译 apk 想找找代码,结果发现是加壳了的,所以只能在寄希望于js
直接全局搜关键字如 “Devicetype”,“Versioncode” ,“X-Encrypt”,看看能不能找到加解密函数
最终通过 “X-Encrypt” 找到了相关代码,handleRequestHeaderEncrypt 最终调用了 Encrypt 调用了
跟进 Encrypt 方法,发现就是一个 aes 加密方法,传入明文,返回密文
下面分析一下 handleRequestHeaderEncrypt
handleRequestHeaderEncrypt
这个代码其实很简单,分为两种情况,一种是调用加密,一种是不调用加密
0x03加密分析
加密:
如果请求头中 X-Encrypt 的值为 “v1”,并且最后会调用加密函数 Encrypt() 进行加密
不加密:
在响应类型为blob时候,也就是二进制数据(如文件下载),将请求包中的请求头 X-Encrypt 的值设置为 “”
0x04 试验
经过上面的分析,只要将请求头中 X-Encrypt 的值为 “” ,就不用走加密
正常情况下 X-Encrypt: v1 是加密了的
X-Encrypt 的值置空即为明文
或者直接删除字段 X-Encrypt: v1 ,也是明文
总之不要让匹配到 X-Encrypt: v1 即可
0x05 总结
那么,编写规则,直接替换关键字,然后再重新进入app,使其重新加载js,就可以看到全部数据包变成明文
Match:
“multipart/form-data”!==e.headers[“Content-Type”]&&(e.headers[“X-Encrypt”]=“v1”
Replace:
“multipart/form-data”!==e.headers[“Content-Type”]&&(e.headers[“xxx”]=“666”
Ending
监制丨船长、铁子
策划丨Cupid
美工丨molin
原文始发于微信公众号(千寻安服):速通某 app 数据包加密
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论