• 共赢金融贷款登录密码加密JS


    1.先打断点,然后慢慢调式

    2.找出JS加密方法

    点击aes_pwd 加密方法

    JS加密方法如图

    3.LOGIN_KEY是写死的

    __LOGIN_KEY="pbEvJJAotWBlVOeLCOIFjhQkAnHifNjBknJDVuGSAZUSlKVMpY"

    /**
     * 密码加密传输
     */
    function aes_pwd(pwd){
    	return des(escape(__LOGIN_KEY+"%u6570%u5b57"+pwd+"%u52a0%u5bc6"));
    }
    
    

    3.把以下JS抠出来

    gongying.js

    function des(str) {
    var c1, c2, c3;
    var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    var i = 0,
    len = str.length,
    string = '';
    
    while (i < len) {
        c1 = str.charCodeAt(i++) & 0xff;
        if (i == len) {
            string += base64EncodeChars.charAt(c1 >> 2);
            string += base64EncodeChars.charAt((c1 & 0x3) << 4);
            string += "==";
            break;
        }
        c2 = str.charCodeAt(i++);
        if (i == len) {
            string += base64EncodeChars.charAt(c1 >> 2);
            string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
            string += base64EncodeChars.charAt((c2 & 0xF) << 2);
            string += "=";
            break;
        }
        c3 = str.charCodeAt(i++);
        string += base64EncodeChars.charAt(c1 >> 2);
        string += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
        string += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
        string += base64EncodeChars.charAt(c3 & 0x3F)
    }
    return string;
    }
    
    /**
     * 密码加密传输
     */
    function aes_pwd(pwd) {
    __LOGIN_KEY = "pbEvJJAotWBlVOeLCOIFjhQkAnHifNjBknJDVuGSAZUSlKVMpY"
    return des(escape(__LOGIN_KEY + "%u6570%u5b57" + pwd + "%u52a0%u5bc6"));
    }
    
    

    get_gongying.py

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import execjs
    import js2py
    import threading
    
    lock = threading.Lock()
    
    def aes_pwd_jm(pwd) :
    
        # with open(r"/opt/gh2/app/whole_web_search/common/tmall_sign.js", encoding='utf-8') as f:
        with open(r"D:myfilegongying.js", encoding='utf-8') as f:
            cx = f.read()
        # ctx = execjs.compile(cx)
        # sign_str = _m_h5_tk_first + "&" + time_dd + "&" + "12574478" + "&" + data
        # sign = ctx.call("get_sign_demo", sign_str)
        # print("sign : ", sign)
        lock.acquire()  # 枷锁
        context = js2py.EvalJs()
        context.execute(cx)
        # sign_str = _m_h5_tk_first + "&" + time_dd + "&" + "12574478" + "&" + data
        # sign = context.get_sign_demo(sign_str)
        sp = context.aes_pwd(pwd)
        lock.release()  # 解锁
    
        del context
        del cx
        return sp
    
    
    if __name__ == '__main__':
        
        pwd = "7741118522"  # 密码
        sp = aes_pwd_jm(pwd)
        print(sp)
    
    

    运行以上二个文件结果如下图:
    user_pwd: cGJFdkpKQW90V0JsVk9lTENPSUZqaFFrQW5IaWZOakJrbkpEVnVHU0FaVVNsS1ZNcFklMjV1NjU3MCUyNXU1YjU3Nzc0MTExODUyMiUyNXU1MmEwJTI1dTViYzY=

    完整JS逆向结束

  • 相关阅读:
    剑指office--------合并两个排序的链表
    剑指office--------栈的压入、弹出序列
    剑指office--------二叉树中和为某一值的路径
    剑指office--------翻转单词顺序列
    剑指office--------丑数
    剑指office--------机器人的运动范围
    剑指office--------二叉树的下一个结点
    数论------欧拉函数
    hdu 5831 Rikka with Parenthesis II
    hdu 5821 Ball (贪心)
  • 原文地址:https://www.cnblogs.com/gqv2009/p/12855907.html
Copyright © 2020-2023  润新知