记一次APP抓包与报文签名伪造
2019-09-17 16:00:30 Author: bbs.pediy.com(查看原文) 阅读量:187 收藏

[原创]记一次APP抓包与报文签名伪造

13小时前 930

记一次APP抓包及分析:

1.分析报文,可知通信方式为HTTPS,有cert,data,sign三个数据段;

2.脱壳反编译,静态分析三段报文的构成方式,此处可用字符串搜索,ddms堆栈调用截取等方式判断调用函数;


3.frida确定调用函数,打印上一步找到的函数参数列表以及返回值,精确找到报文构成函数,此处可以得出a(String str)函数即为报文构成函数,分析此处代码可知,cer数据段为产生随机数的加密值;data数据段为通信数据报文加密值;sign数据段为签名值,构成为 sign=md5(data + "key=" + 随机数)


4.分析data段加密方式,使用jadx,jeb等工具分析data数据段加密方式,此处由 String a2 = c.a(str, str2, "UTF-8")可知data数据调用了c.a函数,跟进可得data数据报文使用了AES/CBC/PKCS5Padding对称加密算法,且明文硬编码key为 qwemoQAPydFvWWLq,初始化向量IV为  wOzCypMUYVuiQO9f,此时即可以加解密报文。


5.伪造报文,由上得知 sign=md5(data + "key=" + 随机数),此时固定随机数就可以伪造报文签名,进而伪造通信报文进行正常的数据通信。使用frida 将a(int i)函数固定为任意16字节字符串,写脚本伪造数据报文即可。



这里需要注意,加密后的报文要进过url编码;md5值需要区分大小写,此时既可以伪造请求报文,进行数据通信。

[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com


文章来源: https://bbs.pediy.com/thread-254496.htm
如有侵权请联系:admin#unsafe.sh