瑞数3代本地cookie是一种用于防止网络爬虫的技术,它利用了浏览器的本地存储功能,将一些加密后的数据存储在用户的浏览器中,然后在每次请求网站时,将这些数据作为cookie发送给服务器,以此来验证用户的身份和行为。瑞数3代本地cookie的加密算法是基于AES和RSA的混合加密,它使用了一个固定的AES密钥和一个动态生成的RSA公钥,将用户的信息和时间戳等数据进行加密,然后将加密后的数据和RSA公钥拼接成一个字符串,作为最终的cookie值。
瑞数3代本地cookie的逆向分析主要分为两个步骤:第一步是获取AES密钥和RSA私钥,第二步是解密cookie值。获取AES密钥和RSA私钥的方法是通过分析网站的JS代码,找到生成cookie的函数,并在浏览器中调试运行,从而得到这两个关键参数。解密cookie值的方法是先将cookie值分割成两部分,一部分是加密后的数据,另一部分是RSA公钥,然后使用RSA私钥对公钥进行解密,得到AES密钥,再使用AES密钥对数据进行解密,得到原始的数据。
使用Python和JS破解这个加密cookie的生成的方法是编写一个Python脚本,利用selenium库模拟浏览器操作,访问目标网站,并获取生成cookie的JS代码。下面是一个简单的示例:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import execjs
# 创建一个无头浏览器
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
# 访问目标网站
url = "https://www.example.com"
driver.get(url)
# 获取生成cookie的JS代码
script = driver.find_element_by_id("script").get_attribute("innerHTML")
# 执行JS代码,并获取AES密钥和RSA私钥
ctx = execjs.compile(script)
aes_key = ctx.eval("aes_key")
rsa_private_key = ctx.eval("rsa_private_key")
# 关闭浏览器
driver.quit()