chengying-6.0登入接口逆向

芒果1年前技术文章710


版本更新
首先是登入的加密
url:http://172.16.121.70/login
参数
1. username:
2. password:
614bb9438210c6972fbe5fa1875d56bebe28fd3d86ea76830afc4e79cfc7159c328285c19db0f4789db01ea644989f6fce5aae5304dc04b332743d2967808fcfae0a0ef35c7435b81423b90a425d1fba36ea2b04584e9440d030e7ca56fe0cc7e14819b562a5edd38d96527514f65a8cff9c388303f9fd12463fdf184ea8e95c
对应加密位置
后面改成了
(e.password, i)

image.png

由于t中的数据是一个请求过来的 所以可以直接搜索
关于public_key可以直接搜索
BEGIN public key

5DA9A621-77D0-4B67-88F6-3581E7B53090.png

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



比较简单直接上代码吧
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 


相关文章

中国式IT运维,趟出自己的“长期主义”河流

2018年,Gartner曾做过一次长达6个月的调查问卷。在这个主题为AIOps的问卷中,Gartner选取了500家各行业头部的企业,针对其当下的IT架构来判断调研企业未来是否会加大对于AIOps的...

单节点Kafka部署并开启Kerberos配置

安装Kerberosserver节点安装kerberos相关软件yum install -y krb5-server krb5-workstation krb5-libs修改配置文件krb5.conf...

磁盘分盘脚本分享

磁盘分区脚本名称:mg_fdisk.sh#!/bin/bashif [ "$#" -ne 1 ]; then  echo "请传入磁盘参数"  exit 1fidisk=$1# 检查磁盘是否存在if...

正式发布 | 《云运维服务白皮书》开放下载!

正式发布 | 《云运维服务白皮书》开放下载!

在全球数字化变革的背景下,为适应数字经济环境下企业生存发展和市场变化的需要,企业进行主动的、系统性、整体性的数字化转型升级。大数据、云计算、人工智能、区块链等新一代信息通信技术为企业的数字化转型提供了...

基于Gitlab和Kubernetes的CI/CD

基于Gitlab和Kubernetes的CI/CD

此套CI/CD流程仅依赖gitlab。runner等组件安装在kubernetes集群中,尽量减少其他依赖,便于维护。依赖介绍gitlab runnergitlab runner用来运行我们的作业并将...

Jenkinsfile说明

Jenkinsfile说明

当我们在使用jenkins进行CI/CD的时候,简单的内容我们可以通过jenkins页面来实现配置。但是如果有复杂的需求还是需要通过jenkinsfile来实现jenkinsfile简单介绍Jenki...

发表评论    

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