【JS逆向】探索文章链接地址AES加密后如何再次替换变形

2024-08-22 05:36

本文主要是介绍【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加密后如何再次替换变形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095383

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

java 恺撒加密/解密实现原理(附带源码)

《java恺撒加密/解密实现原理(附带源码)》本文介绍Java实现恺撒加密与解密,通过固定位移量对字母进行循环替换,保留大小写及非字母字符,由于其实现简单、易于理解,恺撒加密常被用作学习加密算法的入... 目录Java 恺撒加密/解密实现1. 项目背景与介绍2. 相关知识2.1 恺撒加密算法原理2.2 Ja

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可