【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

相关文章

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

Python如何判断字符串中是否包含特殊字符并替换

《Python如何判断字符串中是否包含特殊字符并替换》这篇文章主要为大家详细介绍了如何使用Python实现判断字符串中是否包含特殊字符并使用空字符串替换掉,文中的示例代码讲解详细,感兴趣的小伙伴可以了... 目录python判断字符串中是否包含特殊字符方法一:使用正则表达式方法二:手动检查特定字符Pytho

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

MyBatisX逆向工程的实现示例

《MyBatisX逆向工程的实现示例》本文主要介绍了MyBatisX逆向工程的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录逆向工程准备好数据库、表安装MyBATisX插件项目连接数据库引入依赖pom.XML生成实体类、

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I