chengying-4.0登入接口逆向

芒果2年前技术文章639


首先是登入的加密
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


标签: 大数据运维

相关文章

dolphinscheduler部署-FAQ

dolphinscheduler部署-FAQ

如果是cdh集群会遇到一个问题5678端口被占用这是因为cdh的agent用了5678那我们改下配置文件文件:/opt/apache-dolphinscheduler-3.1.8-bin/st...

ES运维(五)聚合分析流程及精准度

ES运维(五)聚合分析流程及精准度

1、 概述ES是一个近实时的搜索引擎,提供近实时海量数据的聚合分析功能,但这个海量数据聚合分析是会损失一定的精准度来满足实时性能需要的。 2、 分布式系统的近似统计算法如下图,在分布式数据分...

Hive删除外部表

Hive删除外部表

删除外部表操作例:1.首先我们创建一个外部表create EXTERNAL table if not exists mgtest(id int, name string)row format deli...

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

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

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

HDP-Yarn开启CPU调度和隔离

HDP-Yarn开启CPU调度和隔离

进入到ambari主界面 点击yarn 点击config CPU Scheduling and Isolation 设置为enable修改高级配置点击ADVANCED搜索需要修改的配yarn.node...

ES运维(六)_segment合并使用原理及场景

ES运维(六)_segment合并使用原理及场景

一、背景简介ES中,每个index(索引)都包含若干个Shard(分片),每个分片底层又是一个个Segment文件(段),每次数据的读写底层就是与一个个段文件的交互,因此ES调优常用的一块就是对段文件...

发表评论    

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