首页 » 技术分享 » RAS加密 - 二

RAS加密 - 二

 

这次遇到的登陆加密着实费了些功夫,我都想着用phantomjs来解决登陆然后拿到cookies了,这次使用了fiddler抓包了

首先登陆时发现密码加密了,还多了些参数:

在fiddler全局搜索guid,发现是上一个请求里的:

接着找密码加密的部分:

一般来说加密部分都在自己写的js里,所以就不看jquery开头的部分,点击VM919.formatted:74:

找到了加密的部分,我这是使用了断掉调试,可以看到方法所在的行,点击跳转到1496行:

可以发现使用了generateKeypairNoLogin?random的响应数据,可以看出是rsa加密,然后在转为python代码进行加密,参看文章Python从二进制文件中提取Exponent和Modulus数据(e, n)并构建公钥

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
import base64
from Crypto.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
from Crypto.PublicKey import RSA

def get_public_key(n, e):
    n = int(n, 16)
    e = int('0x%s' % e, 16)
    # 使用(e, n)初始化RSAPublicNumbers,并通过public_key方法得到公钥
    pub_key = rsa.RSAPublicNumbers(e, n).public_key(default_backend())
    # 将公钥编码为PEM格式的数据
    pem = pub_key.public_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PublicFormat.SubjectPublicKeyInfo
    )
    return pem
    
if __name__ == '__main__':
    n = 'B7697595490C863FA5A1575F489EF551DCA5EDEC757D92E392B6E0474E369B86B24A81567E0FADFFF966BAAE0F993D8F76F598DD26B05D3B7D2645793A358B61D218C3D9915CA60A32F0F7F5CF80BC716DB70A36A5492B45E037822ED1794F1475BEB3E4C6E6115694B5765E47BA951423864A2F34B18B2F547933B050E08343'
    e = '010001'
    public_key = populate_public_key(n, e)
    rsakey = RSA.importKey(public_key)
    cipher = Cipher_pkcs1_v1_5.new(rsakey)
    ps = cipher.encrypt('zycplasf00').encode('hex')
    print ps

因为常见的rsa加密后是base64编码后的

lr+JhGqViYzxlQf21y66Hfbv9NV5q6IA/jet6Znb8OgpOLIt44njukgvtaAIpHXwYtxcnFEvCecONQI42z4yumtsgDdF1FupzATJOctohGsF9RW5TAlBGkkGD80ePelaS0XUwbT42NfhB9RHED1IN5YCIHXrxUEE/ZGST9OiscM=

形式的,而非这个系统登录时传的

299f41efe33de3377e6a2895d725b4cec8f44e447fe727b0315f4094a9a2adef5dfd5d3aabe3c54e010a95e6722d64f358a9a12dcf1ffc5dc840f428ccd8acfcbb69982fb6c6f4be599b2dd433cbd71500693851918f6b13262e7b5d236ddbe71494a7988975c69f9e3c5e3a59e1b9dfb760007ecc7e2764c6e93568dbdce443

所以在最后直接编码为hex,至此密码加密部分完成,登录就不写了

,至此密码加密部分完成,登录就不写了

转载自原文链接, 如需删除请联系管理员。

原文链接:RAS加密 - 二,转载请注明来源!

0