首页
社区
课程
招聘
[原创]某APP之登录分析
发表于: 2025-7-25 22:50 6908

[原创]某APP之登录分析

2025-7-25 22:50
6908

老样子抓了几次包,发现请求头正常,携带的参数也是明文,但是其中的sign有变化,直接开始分析sign怎么来的
图片描述

直接jadx搜索sign,运气不错,搜索出来的数据不多,挨个点进去看看,没多少时间就锁定了,就在下图里面
图片描述
传递的数据给了a函数,点击进去
图片描述
扔给ai分析一下,很明显了,参数拼接然后组合,最后的返回值又扔给了一个a函数
图片描述
图片描述
继续跟进a到这,hook一下,看看传递了什么过来
图片描述
熟不熟悉,就是请求的参数,把他们在前面加上str然后拼接起来,我们继续跟进,看看mxSign里面的逻辑实现,发现是在so层的,ida启动
图片描述
图片描述

静态函数,一搜索就出来了
图片描述
图片描述
代码有点多,直接ai分析一下,看看大概是在做什么,貌似是RSA的加密,但是看着过程有点复杂,我们继续根据ai提供的点我们逐步看看
图片描述
首先看看decodeBase64Key传递是什么东西(这里我就把参数写死了,包装一下,直接调用java层的方法函数),调用打印,出来的不晓得是什么东西(这里尝试过多次不同的输出方式都不行,不晓得啥情况,有没有大佬指点下)
图片描述
不过没关系,这个不行,换一个,hook它上面basic_string方法看看,没想到碰到惊喜了,这个方法输出了两次,第一个是RSA的私钥,第二次是最终加密成的参数
图片描述
图片描述
【PS:这里输出的日志扔给ai看过,结果ai把最终的结果当成私钥了,所以大家用ai的时候一定要自己辨别一下给的答案,ai的不一定是对的】
图片描述
然后继续hook一下mbedtls_sha256,这是对输入字符串进行SHA256哈希,第一个参数是传递进去的字符串,第二个是字符串的长度,出来的哈希结果是:6d 45 19 dc ff 58 5f 88 1d 1b d8 0b cb 91 0c db 6c 13 27 d6 51 4e 48 d0 a0 2f 22 db bd 49 f7 14
图片描述
编写python脚本验证,将字符串转换成哈希输出的结果,最终是对的上的
图片描述
接下来就是使用私钥进行加密,然后转换成base64编码了,私钥我们前面已经得到了,不需要继续分析下去了,接下来就是编写python代码进行测试了。下图是脚本运行的输出对比
图片描述
第一眼是对的上了,但是越看越不对劲,符号咋对不上,继续往下看看,原来还漏了一个符号转换,它最终将'+' -> '-','/' -> '_'
图片描述
经过一番修改,最终打印出来的值通过了文本对比工具的对比
图片描述
图片描述

无检测,并且java层很容易就找到了,难点都是在so里面,先是转换 -> 然后加密 -> 最后修改符号,有一定难度

import base64
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
 
# 私钥
private_key_pem = 私钥的话这里自己找一下吧
 
 
def mxsign(input_string, private_key_pem):
 
    # 加载私钥
    private_key = RSA.import_key(private_key_pem)
 
    # 计算哈希
    h = SHA256.new(input_string.encode())
    hash_digest = h.digest()
    print(f"SHA256哈希字节: {hash_digest.hex()}")
    # RSA私钥加密
    signature = pkcs1_15.new(private_key).sign(h)
    print(f"RSA签名: {signature}")
 
    # Base64编码
    result = base64.b64encode(signature).decode()
    print(f"base64编码: {result}")
    # 转换
    result = result.replace("+", "-").replace("/", "_")
    return result
 
 
if __name__ == "__main__":
    # 测试
    test_string = "appId=ba660596c1d911ebabac005056883e3e&captcha=123456&mobilePhone=12345678901&t=1753409951546"
    signature = mxsign(test_string, private_key_pem)
import base64
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
 
# 私钥
private_key_pem = 私钥的话这里自己找一下吧
 
 
def mxsign(input_string, private_key_pem):
 
    # 加载私钥
    private_key = RSA.import_key(private_key_pem)
 
    # 计算哈希

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2025-9-2 17:35 被kanxue编辑 ,原因:
收藏
免费 131
支持
分享
最新回复 (84)
雪    币: 14
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
6
2025-7-26 00:49
0
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2025-7-26 08:32
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
666
2025-7-26 09:04
0
雪    币: 145
活跃值: (244)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
666
2025-7-26 15:41
0
雪    币: 59
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
6666
2025-7-26 17:52
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
666
2025-7-26 19:16
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
29o
8
666
2025-7-27 11:12
0
雪    币: 1495
活跃值: (3698)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
9
第一句话,老样子看成老子了。。哈哈哈哈
2025-7-27 20:47
1
雪    币: 4
活跃值: (945)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
感谢分享
2025-7-27 21:00
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
感谢大佬分享
2025-7-27 22:17
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
感谢大佬分享
2025-7-27 22:17
0
雪    币: 231
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
666
2025-7-28 08:55
0
雪    币: 105
活跃值: (2282)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
666
2025-7-28 10:05
0
雪    币: 234
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
内存hexdump试一下呢?
2025-7-28 10:40
0
雪    币: 758
活跃值: (859)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
wx_天秤称双鱼 ᯤ⁶ᴳ 内存hexdump试一下呢?
老哥指的是dump什么?so还是参数日志输出部分?so试过了,参数输出也试过了
2025-7-28 11:37
0
雪    币: 144
活跃值: (1993)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
感谢分享
2025-7-28 16:14
0
雪    币: 364
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
感谢分享
2025-7-28 17:07
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
谢谢
2025-7-28 22:00
0
雪    币: 0
活跃值: (275)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
ai 时代
2025-7-28 22:08
0
雪    币: 247
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
第一个抓包软件是charles吗
2025-7-29 00:03
0
雪    币: 758
活跃值: (859)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
22
qwekan 第一个抓包软件是charles吗
不是 开源的软件 proxypin
2025-7-29 00:06
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
666
2025-7-29 09:42
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
666
2025-7-29 16:03
0
雪    币: 770
活跃值: (5424)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
蜜穴?
2025-7-29 16:36
0
游客
登录 | 注册 方可回帖
返回