chengying-4.0登入接口逆向

芒果2年前技术文章1089


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


标签: 大数据运维

相关文章

Debezium部署以及同步之DB2数据到Kafka的同步

Debezium部署以及同步之DB2数据到Kafka的同步

因为Debezium依赖于kafka之上,所以我们先部署kafka和zookeeper(忽略)。1 环境介绍Debezium1.9版本 Db2 11.5版本  附官网:http...

Haproxy配置负载均衡

yum安装haproxy如果后面要配置高可用,和keepalived配合使用更佳。yum install haproxy修改配置文件设置impala和ldap的负载均衡(Impala Daemon分布...

dolphinscheduler单机部署

dolphinscheduler单机部署

官网链接:https://dolphinscheduler.apache.org本次测试版本为:https://dolphinscheduler.apache.org/zh-cn/download/3...

 大数据集群监控配置操作指导(二)node_exporter+mysql_exporter部署

大数据集群监控配置操作指导(二)node_exporter+mysql_exporter部署

2.node_exporter监控集群服务器(所有集群服务器)wget https://github.com/prometheus/node_exporter/releases/download/v1...

远程DEBUG HADOOP源码方法

远程DEBUG HADOOP源码方法

1. 安装IDEA2. 下载hadoop源码,必须与集群服务代码版本一致,否则会导致有的类无法找到3. 将源码导入IDEA工程并完成build4. 点击 菜单栏--运行--编辑配置 进行相关debug...

CPU--上下文切换

CPU--上下文切换

一、概述1、Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 ...

发表评论    

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