某简单APP登录算法分析

admin 2025年6月10日18:06:17评论14 views字数 1204阅读4分0秒阅读模式

1.使用Charles+Postern配合抓取目标APP登录数据包(测试用户名:13211112222、口令123456)。

某简单APP登录算法分析

2.简单分析登录数据包我们可以发现,我们输入的账号数据被保存在uid字段,而口令字段非明文显示,可能是vkey或者auth字段。进一步,我们尝试使用不同的口令登录,发现仅仅auth字段发送了改变,其他字段保持不变,故初步判断app使用特定的算法对我们输入的口令进行了加密。

某简单APP登录算法分析

某简单APP登录算法分析

3.查看app的加固情况,发现app未加壳,使用jadx对app进行反编译分析。

某简单APP登录算法分析

4.为了确认具体的加密方法,我们利用hook技术,在程序运行时打印hashmap的输入与输出情况,从中我们发现我们输入的账号与口令信息确实保存在hashmap中。

某简单APP登录算法分析

某简单APP登录算法分析

5.打印系统的堆栈信息,进一步确认调用hashmap存储auth的值的具体方法名。

某简单APP登录算法分析

某简单APP登录算法分析

6.基于以上分析我们可知,登录过程中,app调用了activity.LoginActivity.login这个方法对输入的数据进行了处理,故我们对该方法进行静态/动态分析。

某简单APP登录算法分析7.从代码我们可以看成,login方法本身不具备参数,同时也没有返回值,故我们输入的数据应该是在login方法体中调用的某个方法实现的。根据方法语义, ZhongYiBangUtil.getMD5()方法的最后返回值赋值给了md5TwicePwd,很大可能该方法的返回值就是我们需要的加密结果,故我们进入ZhongYiBangUtil.getMD5()中,利用hook技术,打印相关输入输出信息。

某简单APP登录算法分析

某简单APP登录算法分析

8.根据方法的名字(getMD5),以及我们输入参数与加密后的结果进行对比,发现该算法确实为md5,同时auth的值(7fc6cc53f75e8308039437c9d11d247e)是由(e10adc3949ba59abbe56e057f20f883e6ea43c70f3c0d6f9fb2a238a62a7c744)进行md5算法得到的,而e10adc3949ba59abbe56e057f20f883e6ea43c70f3c0d6f9fb2a238a62a7c744由e10adc3949ba59abbe56e057f20f883e与6ea43c70f3c0d6f9fb2a238a62a7c744拼接而成,e10adc3949ba59abbe56e057f20f883e为我们口令的md5值,6ea43c70f3c0d6f9fb2a238a62a7c744为固定字符串xi**y的md5值。至此,通过逆向,我们发现该auth字段的加密规则为,先对用户输入的口令进行md5运算,运算的结果与6ea43c70f3c0d6f9fb2a238a62a7c744拼接起来,再进行一次md5算法即可得到。我们用helloworld这个口令来验证我们的猜想。

某简单APP登录算法分析

某简单APP登录算法分析

某简单APP登录算法分析

某简单APP登录算法分析

原文始发于微信公众号(Matrix1024):某简单APP登录算法分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月10日18:06:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某简单APP登录算法分析https://cn-sec.com/archives/883940.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息