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

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


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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容