美文网首页
啦啦拉啦勾,职位data返回解密

啦啦拉啦勾,职位data返回解密

作者: 朝朝朝朝朝落 | 来源:发表于2022-06-28 13:02 被阅读0次

    最近找工作被问到,就试试吧:


    WX20220628-110049@2x.png

    感觉。。。有时候挺重要的


    WX20220628-111106@2x.png WX20220628-111655@2x.png

    在getData()上面每一步细看看,在1680行这里断下,一步一步走到1674:

    WX20220628-112437@2x.png

    明文数据获取到了,接下来就要找到加密的位置

    这次从上往下找initiator

    WX20220628-115014@2x.png WX20220628-123829@2x.png

    断点设在这里一步一步调可以找到,不赘述了

    其实更简单的方法是搜索关键字,加密就搜索encrypted,decrypt,aes,md5,key。。。试试,竟然发现了:


    WX20220628-124149@2x.png
    WX20220628-124306@2x.png

    那我们就来测试一下:
    把请求里的data拿出来解密一下:


    WX20220628-124357@2x.png

    转成Python代码

    
    from pyDes import des, CBC, PAD_PKCS5,ECB
    from Crypto.Cipher import DES,AES
    
    def add_to_16(text):
        if len(text.encode('utf-8')) % 16:add = 16 - (len(text.encode('utf-8')) % 16)
        else:add = 0
        text = text + ('\0' * add)
        return text.encode('utf-8')
    
    def encryt_cbc(text, key, iv):
        '''CBC '''
        cipher = AES.new(key, AES.MODE_CBC,iv)
        x = AES.block_size - (len(text) % AES.block_size)
        if x != 0:text = text + chr(x)*x
        msg = cipher.encrypt(text)
        # msg = base64.urlsafe_b64encode(msg).replace('=', '')
        msg = base64.b64encode(msg)
        return msg.decode()
    
    def decrypt_cbc(data, key,iv):
        try:
            aes = AES.new(key, AES.MODE_CBC,iv)  # 初始化加密器
            decrypted_text = aes.decrypt(base64.decodebytes(bytes(data, encoding='utf8'))).decode("utf8")  # 解密
            decrypted_text = decrypted_text[:-ord(decrypted_text[-1])]  # 去除多余补位
        except Exception as e:
            pass
        return decrypted_text
    
    iv='c558Gq0YQK2QUlMc'.encode()
    text='太长了,不复制了'
    key = 'C0FQvqYZuR+f2lnWnDKo+d5w5OXgy=Jf'.encode('utf-8')
    text=decrypt_cbc(text,key,iv)
    

    把response的data粘过来运行一下:


    WX20220628-124934@2x.png

    相关文章

      网友评论

          本文标题:啦啦拉啦勾,职位data返回解密

          本文链接:https://www.haomeiwen.com/subject/rluavrtx.html