巧用APP历史版本对APP登录signature分析

  • A+
所属分类:移动安全

前言

之前在火线zone看到利用app历史版本来进行app的逆向分析,可以降低一下分析难度,比较老版本的安全防护做的不是很到位。正好最近有一个app,尝试利用一下老版本进行分析登录签名,没想到效果非常好。


算法分析

对于最新版本的app进行了抓取流量包的操作,对于登录包,发现校验非常多,而且也没有明显的校验文本。


巧用APP历史版本对APP登录signature分析


并且该app加固比较全面,采用常规分析手法,需要先脱壳,然后过各种防护。比较麻烦,因此我就尝试了一下利用他的历史版本的方法。


该app最新版为2021年7月发布。我下载的历史版本为2020年6月份版本,没有加壳。首先也是对历史版本的app进行抓包,发现登录包参数十分简单明了。


巧用APP历史版本对APP登录signature分析


sign参数,和包名以及密码类型(此处我采用的是验证码登录),还有时间戳。


之后对app进行反编译一下,看一下java层代码。


搜索siganture后发现一处比较符合条件的地方。


巧用APP历史版本对APP登录signature分析


跟进去看一下加密方式。


巧用APP历史版本对APP登录signature分析


显然这是HmacSHA1标准加密,其实在最新版也是采用这个,但是写进了so层,这个以后再说。


巧用APP历史版本对APP登录signature分析


那加密的参数也就是显而易见。是由pGrantType+clientID+authorisation.source + timestamp拼接而成,而clientSecret就是密钥。


此时测试一下查看结果是否正确。


巧用APP历史版本对APP登录signature分析


结果正确。

在这之后,我对于新版也分析了一下。发现密钥没有改变,字符串拼接也没有改变。。。


巧用APP历史版本对APP登录signature分析


其中某个校验采用的是so层标准hmacsha1加密,密钥是


dd49a835-56e7-4a0f-95b5-efd51ea5397f


巧用APP历史版本对APP登录signature分析


setImmediate(function() {Java.perform(function() {var targetClass='com.xxx.android.cloudid.CloudIDHelper';var methodName='encrypt';var gclass = Java.use(targetClass);gclass[methodName].overload('java.lang.String','java.lang.String','java.lang.String','java.lang.String','java.lang.String','java.lang.String','java.lang.String').implementation = function(arg0,arg1,arg2,arg3,arg4,arg5,arg6) {console.log('n[Hook encrypt(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)]'+'ntarg0 = '+arg0+'ntarg1 = '+arg1+'ntarg2 = '+arg2+'ntarg3 = '+arg3+'ntarg4 = '+arg4+'ntarg5 = '+arg5+'ntarg6 = '+arg6);var i=thismethodName;console.log('treturn '+i);return i;}})})


巧用APP历史版本对APP登录signature分析


总结

该app也算是一个比较大众的app,从这里可以看出,他们在一步步的加固防御方式做的越来越出色,然而对于原本的关键数据还是没有做一些处理。这也就给了一些可乘之机。这对开发者来说是一个需要注意的点,对于分析人员来说更是一个需要注意的分析点。


巧用APP历史版本对APP登录signature分析

【火线短视频精选】



【周度激励】2021.8.2 ~ 2021.8.8公告


巧用APP历史版本对APP登录signature分析



【相关精选文章】


vip业务权限漏洞挖掘入门姿势实战


洞态IAST Python探针内测版发布


火线Zone是[火线安全平台]运营的封闭式社区,社区成员必须在[火线安全平台]提交有效漏洞才能申请免费加入,符合要求的白帽子可联系[火线小助手]加入。


我们不希望出现劣币驱逐良币的结果,我们不希望一个技术社区变成一个水区!


欢迎具备分享精神的白帽子加入火线Zone,共建一个有技术氛围的优质社区!


巧用APP历史版本对APP登录signature分析

本文始发于微信公众号(火线Zone):巧用APP历史版本对APP登录signature分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: