本文主要是介绍【JS逆向】探索文章链接地址AES加密后如何再次替换变形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、加密后的数据变形
二、加密函数的定义
def encrypt_message(message):cipher = AES.new(key, AES.MODE_ECB)padded_message = pad(message.encode(), AES.block_size, style='pkcs7')cliphertext = cipher.encrypt(padded_message)return cliphertext
首先要调用
from Crypto.Cipher import AES from Crypto.Util.Padding import pad
这里要说的是pkcs7的使用
三、页面调用
页面公告的内自动化找到标题和链接
from DrissionPage import ChromiumPage, ChromiumOptions from Crypto.Cipher import AES import base64# chrome:version co=ChromiumOptions().set_paths(browser_path=r"C:\Users\lenovo\AppData\Local\Google\Chrome\Application\chrome.exe") page = ChromiumPage(co)page.get("http://ggzy.zwfwb.tj.gov.cn/") page.wait.load_start()for art in page.eles('x://div[@id="message-shu1"]/ul/li', timeout=5):art_name = art.ele('x://div[@class="xw-w"]/a').textart_url = art.ele('x://div[@class="xw-w"]/a').attr("href")art_time = art.ele('x://div[@class="xw-time"]').textprint(art_name, art_url, art_time)s = art_url.split('/')[4].split('.')[0]
四、分析链接
# http://ggzy.zwfwb.tj.gov.cn /zwyw/ZX8N+%5EdXMw4NiFQnAayv%5Ew.jhtml # http://ggzy.zwfwb.tj.gov.cn:80/zwyw/1147530.jhtml
地址域名是去掉80端口1147530加密成了ZX8N+%5EdXMw4NiFQnAayv%5Ew
五、代码实现
从获取的地址 s = art_url.split('/')[4].split('.')[0]找到加密的数据源
通过点击事件找到函数
这段代码中找到key ,转换成二进制encode('utf-8')
key = 'qnbyzzwmdgghmcnm'.encode('utf-8')
def encrypt_message(message):cipher = AES.new(key, AES.MODE_ECB)padded_message = pad(message.encode(), AES.block_size, style='pkcs7')cliphertext = cipher.encrypt(padded_message)return cliphertextcs = s print(cs) encs=base64.b64encode(encrypt_message(cs)).decode("utf-8") print(str(encs))
加密后的数据是二进制 通过b64变成字符再decode变成字符串
# b'ZX8N+ / dXMw4NiFQnAayv / w==' # ZX8N+ %5EdXMw4NiFQnAayv %5Ew
比较两个加密数据进行分割变将/替换成%5E
encs_spl=encs.rstrip('=').replace('/','%5E') print(encs_spl)
newurl = f'http://ggzy.zwfwb.tj.gov.cn/zwyw/' + encs_spl + '.jhtml'
找到新的地址
验证成功,打开页面
这篇关于【JS逆向】探索文章链接地址AES加密后如何再次替换变形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!