【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

相关文章

一篇文章让你彻底搞懂Java中VO、DTO、BO、DO、PO

《一篇文章让你彻底搞懂Java中VO、DTO、BO、DO、PO》在java编程中我们常常需要做数据交换,那么在数据交换过程中就需要使用到实体对象,这就不可避免的使用到vo、dto、po等实体对象,这篇... 目录深入浅出讲解各层对象区别+实战应用+代码对比,告别概念混淆,设计出更优雅的系统架构!一、 为什么

JAVA SpringBoot集成Jasypt进行加密、解密的详细过程

《JAVASpringBoot集成Jasypt进行加密、解密的详细过程》文章详细介绍了如何在SpringBoot项目中集成Jasypt进行加密和解密,包括Jasypt简介、如何添加依赖、配置加密密钥... 目录Java (SpringBoot) 集成 Jasypt 进行加密、解密 - 详细教程一、Jasyp

使用MyBatis TypeHandler实现数据加密与解密的具体方案

《使用MyBatisTypeHandler实现数据加密与解密的具体方案》在我们日常的开发工作中,经常会遇到一些敏感数据需要存储,比如用户的手机号、身份证号、银行卡号等,为了保障数据安全,我们通常会对... 目录1. 核心概念:什么是 TypeHandler?2. 实战场景3. 代码实现步骤步骤 1:定义 E

一篇文章彻底搞懂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