首页
社区
课程
招聘
[原创]1xx86(iOS)登录分析
发表于: 1天前 553

[原创]1xx86(iOS)登录分析

1天前
553

本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

用Charles抓包,可以看到xs、x-sign、x-token和body都需要计算
图片描述

直接把数据包往豆包老师脸上一丢,你看,你分析,你总结。结果它还真争气
图片描述

Frida老师登场!既然陈佬已经把坑都填好了,那我就不客气了。站在陈佬的肩膀上,直接从他的帖子里借来 MD5 和 AES 的命令。

效果好到怀疑人生,想要的全有了。(不想要的也顺便送了)

所有代码由千问老师友情赞助,测试通过

本次分析难度适中,经发际线监测仪确认,暂无头发阵亡。

frida-trace -UF -i "CC_MD5" -i CCCrypt
frida-trace -UF -i "CC_MD5" -i CCCrypt
def encrypt_body(body: str) -> str:
    key = "V0dSUFZtS1NWRnJa"
    iv = "UkdWMVpWTVVWaGVq".encode('utf-8')
    body_bytes = body.encode('utf-8')
    cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv)
    padded = pad(body_bytes, AES.block_size, style='pkcs7')
    encrypted = cipher.encrypt(padded)
    return base64.b64encode(encrypted).decode('utf-8')
 
 
def decrypt_body(body: str) -> str:
    key = "ZUV0alZswS05HRnJ"
    iv = "UkdWMVpWTVVWaGVq".encode('utf-8')
    encrypted_bytes = base64.b64decode(body)
    cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv)
    decrypted_padded = cipher.decrypt(encrypted_bytes)
    decrypted = unpad(decrypted_padded, AES.block_size, style='pkcs7')
    return decrypted.decode('utf-8')
 
 
def md5_hex(data: bytes) -> str:
    return hashlib.md5(data).hexdigest().lower()
 
 
def get_xs(url: str, body: str) -> str:
    data = f"{url}_{body}_Leadeon/SecurityOrganization"
    return md5_hex(data.encode('utf-8'))
 
 
def get_xsign(xtoken: str, xtime: str, xnonce: str) -> str:
    data = f"{xtoken}_{xtime}_{xnonce}_null"
    return md5_hex(data.encode('utf-8'))
 
 
def get_xtoken(xk: str, path: str, xtime: str, xnonce: str) -> str:
    body = f"{xk}_{path}_{xtime}_{xnonce}"
    key = "bAIgvwAuA4tbDr9d"
    iv = "9791027341711819".encode('utf-8')
    body_bytes = body.encode('utf-8')
    cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv)
    padded = pad(body_bytes, AES.block_size, style='pkcs7')
    encrypted = cipher.encrypt(padded)
    return base64.b64encode(encrypted).decode('utf-8')
def encrypt_body(body: str) -> str:
    key = "V0dSUFZtS1NWRnJa"
    iv = "UkdWMVpWTVVWaGVq".encode('utf-8')
    body_bytes = body.encode('utf-8')
    cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv)
    padded = pad(body_bytes, AES.block_size, style='pkcs7')
    encrypted = cipher.encrypt(padded)
    return base64.b64encode(encrypted).decode('utf-8')
 
 
def decrypt_body(body: str) -> str:
    key = "ZUV0alZswS05HRnJ"
    iv = "UkdWMVpWTVVWaGVq".encode('utf-8')
    encrypted_bytes = base64.b64decode(body)
    cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv)
    decrypted_padded = cipher.decrypt(encrypted_bytes)
    decrypted = unpad(decrypted_padded, AES.block_size, style='pkcs7')
    return decrypted.decode('utf-8')

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

收藏
免费 24
支持
分享
最新回复 (12)
雪    币: 8739
活跃值: (6532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
1天前
0
雪    币: 155
活跃值: (3991)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享 
1天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
感谢分享
1天前
0
雪    币: 375
活跃值: (3271)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
666
1天前
0
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
感谢分享
1天前
0
雪    币: 5090
活跃值: (5189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
6666
1天前
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
1
1天前
0
雪    币: 1501
活跃值: (3768)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
9
123
1天前
0
雪    币: 71
活跃值: (1808)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
666
1天前
0
雪    币: 293
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
66
1天前
0
雪    币: 4
活跃值: (605)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
666
23小时前
0
雪    币: 157
活跃值: (2611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
感谢分享
28分钟前
0
游客
登录 | 注册 方可回帖
返回