chengying-4.0登入接口逆向

芒果1年前技术文章420


首先是登入的加密
url:http://xxxxx/api/v2/user/login
参数
1. username:
admin@dtstack.com
2. password:
614bb9438210c6972fbe5fa1875d56bebe28fd3d86ea76830afc4e79cfc7159c328285c19db0f4789db01ea644989f6fce5aae5304dc04b332743d2967808fcfae0a0ef35c7435b81423b90a425d1fba36ea2b04584e9440d030e7ca56fe0cc7e14819b562a5edd38d96527514f65a8cff9c388303f9fd12463fdf184ea8e95c


DFE16963-8BC8-4D25-A6CB-8097349DCF2E.png

登入对应加密位置

image.png

可以看出"sm2" === i为false 所以可以配置
也可以看出是rsa加密

12C29B6C-6EC7-42F8-8920-D48BEE3EE610.png

值得注意的是 这个public_key是请求过来的

C08810CC-3B23-49EC-AA80-611ECB042BA2.png29D419BD-DACF-48CA-BDA8-6839B833F04C.png

比较简单直接上代码吧
def getPwd(t):
    n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
    r = "0123456789abcdefghijklmnopqrstuvwxyz"  # 这里需要替换为实际的函数或方法
    i = ""
    s = 0
    o = 0
    for e in range(len(t)):
        if t[e] == "=":
            break
        h = n.index(t[e])
        if h >= 0:
            if s == 0:
                i += r[h >> 2]
                o = 3 & h
                s = 1
            elif s == 1:
                i += r[o << 2 | h >> 4]
                o = 15 & h
                s = 2
            elif s == 2:
                i += r[o]
                i += r[h >> 2]
                o = 3 & h
                s = 3
            else:
                i += r[o << 2 | h >> 4]
                i += r[15 & h]
                s = 0
    return i
def encrypt_password(publicKey, password):
    rsakey = RSA.importKey(publicKey)
    cipher = PKCS1_v1_5.new(rsakey)
    cipher_text = base64.b64encode(cipher.encrypt(password.encode('utf-8')))
    pwd = getPwd(cipher_text.decode('utf-8'))
    return pwd
def login_app(ip, username, password):
    url_getPublicKey = f"http://{ip}/api/v2/user/getPublicKey"
    url_login = f"http://{ip}/login"
    resopnse_PublicKey = requests.get(url_getPublicKey)
    publicKey = resopnse_PublicKey.json()['data']['encrypt_public_key']
    password = encrypt_password(publicKey, password)
    print(password)

51F1964A-81D5-4BAA-96C6-4288C90F0741.png


标签: 大数据运维

相关文章

trino组件对接hudi(四)

trino组件对接hudi(四)

安装部署本文是基于已经部署了trino组件的环境上,进行的trino和hudi的对接,使trino组件能够正常查询hudi表。1、增加hudi connector配置在trino安装部署下的etc/c...

如何重塑IT运维核心竞争力?可观测运维这么做!

如何重塑IT运维核心竞争力?可观测运维这么做!

随着云计算、大数据、人工智能等新兴技术的兴起及运用,无论是通讯、金融、教育,还是交通、政府、企业等行业,都得到飞速发展,但在高速发展的同时,各行业巨大的 IT 维护和管理成本也在与日俱增,存在监控工具...

trino容器对接ldap(二)

trino容器对接ldap(二)

前提:本文前提是在trino容器已经对接上hive组件,并且ldap已经部署完成的基础上进行的对接。前提文章见:helm安装部署trino对接hive(一)安装部署1、设置证书因为不确定是在哪台机器中...

Trino配置yanagishima-23.0(包含编译)

Trino配置yanagishima-23.0(包含编译)

1 环境介绍1.1 本文采用trino 359yanagishima v23.02 编译yanagishima2.1 安装编译yanagishima需要的工具安装编译yanagishima需要的工具w...

在经济低迷时管理云服务的策略!

近几年全球经济在疫情等各方面影响之下持续低迷,Wanclouds公司发布的一份研究报告指出,81%的美国IT领导者表示,他们的首席执行官要求他们减少或者不增加云计算支出。事实上,在那些被要求削减成本的...

kafka模拟消费报错 ISR缺失 指定offset提取数据失败场景

kafka模拟消费报错 ISR缺失 指定offset提取数据失败场景

测试集群信息kafka版本:3.0.0172.16.120.236  kafka-id: 0172.16.121.150  kafka-id: 1172.16.121.225  kafka-id: 2...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。