相信大家做APP渗透测试的时候,经常会遇到sign签名的困扰,这里给大家分享个实际案例,但是这个案例不是很完美,为什么不完美,详情见下文。
给520来点不一样的,求转发!
数据包加密大致如下
反编译出apk源码后,直接搜索sign参数,内容太多,无果
旁路搜索其他参数
数据包中除了sign,还有timestamp和token,我们尝试搜索timestamp 看到如下核心代码,路径为
cn.xxxx.utils.CommonUtils
public static String timeStamp2Date(String timestampString, String formats) {
return new SimpleDateFormat(formats).format(new Date(Long.parseLong(timestampString) * 1000));
}
上面这段代码应该是设置timestamp的,那我们根据命名规则,是可以猜测设置sign也是在cn.xxxx.utils.CommonUtils中
果然,确实也存在sign相关的方法,名为getDigestSign
分析代码应该是把什么进行了sha1加密
通过分析,是把timestamp+token+private_key进行拼接进行了加密
我们把timestamp+token+private_key三者进行拼接加密测试
成功复现