【实战案例】某APP登陆算法逆向分析

admin 2025年1月20日13:10:54评论10 views字数 1633阅读5分26秒阅读模式
01

前言

本文逆向分析的App为了缩短文章篇幅,提高文章的可读性,去除了一些没有意义的分析,但是在真实逆向过程中可没有文章中这么顺畅,需要反复的去分析反编译后的代码

02
抓包分析

抓取App登录的数据包,会发现其密码进行了加密,并且有签名校验

【实战案例】某APP登陆算法逆向分析
请求方式:POST请求地址:https://xxx.com/app/api/v1/partnerLogin/login请求体:phone=18630087660password=e10adc3949ba59abbe56e057f20f883e请求头:X-App: nativeX-Noncestr: 123456X-OS: partnerApp_androidX-Req-Time: 1650980779832X-Sign: 645b299fc29998e390d60d95a9b1ac5aX-Token: X-UserID: 
03
反编译Apk

想要逆向出加密算法,首先得先将apk进行反编译,apk文件,本质就是压缩包(代码)。反编译工具,反编译成java代码,分析java代码,这里使用的工具是jadx-1.3.1

【实战案例】某APP登陆算法逆向分析
04
逆向password算法

接下来要解决:password是怎么加密的?

1)首先根据特点去搜索,找到算法代码的位置。可能搜到很多东西,所以搜索需要一定的技巧和运气

  • password    "password"     password=
  • phone
  • /v1/partnerLogin/login
【实战案例】某APP登陆算法逆向分析

2)转到代码中,分析代码,代码中存在很多可疑关键词,基本上可以确定该处就是登录的api接口

【实战案例】某APP登陆算法逆向分析

3)选中submitLogin右键查找用例

【实战案例】某APP登陆算法逆向分析

4)转到用例的代码中,分析其中的代码,发现此处声明了一个 loginWithToken 的类

【实战案例】某APP登陆算法逆向分析5)全局搜索 loginWithToken 这个类,继续逐个分析其代码

【实战案例】某APP登陆算法逆向分析6)转到代码中,分析其代码

【实战案例】某APP登陆算法逆向分析7)查找并转到 setPwd 的用例代码中【实战案例】某APP登陆算法逆向分析

8)分析其代码,分析出密码只经过了一层md5加密

【实战案例】某APP登陆算法逆向分析

9)使用python代码实现该算法

# 明文:123456# 密文:e10adc3949ba59abbe56e057f20f883eimporthashlibobj=hashlib.md5()obj.update("123456".encode('utf-8'))res=obj.hexdigest()print(res) # e10adc3949ba59abbe56e057f20f883e
05
逆向X-Sign算法

即使 password 的算法给逆向出来了,也还无法使用python去进行发包,我们还需要解决 X-Sign 这个签名算法

1)全局搜索关键词 X-Sign

【实战案例】某APP登陆算法逆向分析

2)转到代码中,发现 X-Sign 是 RequestParamsWrapper 这个类的一个参数,于是分析 RequestParamsWrapper 这个类

【实战案例】某APP登陆算法逆向分析

3)分析 RequestParamsWrapper 这个类

【实战案例】某APP登陆算法逆向分析

4)使用python代码实现该算法的调用

importhashlibtoken=""reqTime="1650980894776"# 时间戳nonce_str="123456"nonce_str_sub_2=nonce_str[2:]body_string="phone=18630087660&password=e10adc3949ba59abbe56e057f20f883e"encrypt_string=f"{token}{reqTime}{nonce_str_sub_2}{body_string}"obj=hashlib.md5()obj.update(encrypt_string.encode('utf-8'))res=obj.hexdigest()print(res)# 5529026c5150c9f226f3e7cc7d90223c# 5529026c5150c9f226f3e7cc7d90223c

原文始发于微信公众号(Sec探索者):【实战案例】某APP登陆算法逆向分析

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

发表评论

匿名网友 填写信息