欢迎光临散文网 会员登陆 & 注册

逆向破解某APP的sign值校验

2023-02-22 11:15 作者:杰斯教你搞web  | 我要投稿

什么是sign值?

可以理解为检验,每一个数据包中有sign值就意味着可以被检验,当我们一旦篡改数据,校验值不正确,则会失败。


0X01 体测APP


界面功能点如图:


手机装好https证书,挂好Burpsuite的代理,随后我们直接去抓取该APP上传校园跑步数据时的请求

将跑步距离0.000 修改为5.000时,直接提示认证失败,原因就是sign值的问题。


0X02 逆向破解Sign值的加密


首先判断sign是否有漏洞,看sign值是否采用了一些弱加密/编码方法(例如md5)


上一方法失败,随后我们尝试第二种方法,置空sign值,发现依然鉴权认证失败


0X03 逆向破解app


先查壳,运气不错,apk没加壳,省了不少功夫


全局搜素sign,在仔细挨个查看后,成功定位到了其sign生成的关键算法

其sign值的签名算法:创建一个链表, 将全部已有的参数加入进去, 然后再加上一些键值对(其中timestamp时间戳我们已知,

appID,appSecret两个键值对我们均未知),之后再将全部的键值对根据键的字母顺序进行排序, 之后使用 querystring 方式对键值对进行编码,最后再对编码后的字符串求 MD5 值


分析代码发现,appID获取:,如果请求的url是 https://m.xxxxx.com 则为move,否则调用getAppId方法,获取某接口openId的参数值,随后赋值给AppID。


appSceret获取:在jadx中提示appSecre键t对应的值来源于g.b,我们在import的包中成功找到了g.b(即appSecret)


现确定了所有参数的键值对,只需要写个脚本写出sign值即可


将原来的formatSportRange跑步距离改为了从0.000修改为5.003,并使用程序生成的sign值


大功告成,跑步记录保存成功,我们成功使用伪造的sign签名增加了一条5.003 km的跑步记录


逆向破解某APP的sign值校验的评论 (共 条)

分享到微博请遵守国家法律