python爬虫-逆向实例小记-1

news2024/9/25 19:25:00

注意!!!!某政府网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!!!

案例分析

第一步:下图标注出来的是获取请求断点,断点出自 请求url

 第二步:有点玄学了(鄙人才疏学浅,所以会通篇进行手动实现响应这个过程可以看到一些重要信息)。手动实现断点后响应过程

第三步:通过手动进行下一步会得到每一步的操作后的内容(与调试debug是一样的)

 第四步:从一大串响应内容到得到页面正常的内容,调用了f m(t)函数, 鼠标放在该位置,会得到相关的.js 文件。点进去即可

第五步:展示一下: f m(t) 函数。通过这个函数可以很肯定的是,使用了AES CBC模式pkcs7 填充。从下图可知,f 是key ,h 是偏移量(vi),  n 是通过hex 和base64 包装后的一大串内容

第六步:一步一步执行,就可以看到从“乱码”到内容的关键过程。

 代码

python AES部分参考https://blog.csdn.net/yt_xy/article/details/108863258 博主

# 十六进制转base64
import codecs
hex_string = ''    # 十六进制数值
b64_string = codecs.encode(codecs.decode(hex_string, 'hex'), 'base64').decode()

# 解密
# !!!!!!!!
# 本人参考https://blog.csdn.net/yt_xy/article/details/108863258 博主
from Crypto.Cipher import AES
import base64
class Encrypt:
    def __init__(self, key, iv):
        self.key = key.encode('utf-8')
        self.iv = iv.encode('utf-8')

    # @staticmethod
    def pkcs7padding(self, text):
        """明文使用PKCS7填充 """
        bs = 16
        length = len(text)
        bytes_length = len(text.encode('utf-8'))
        padding_size = length if (bytes_length == length) else bytes_length
        padding = bs - padding_size % bs
        padding_text = chr(padding) * padding
        self.coding = chr(padding)
        return text + padding_text

    def aes_encrypt(self, content):
        """ AES加密 """
        cipher = AES.new(self.key, AES.MODE_CBC, self.iv)
        # 处理明文
        content_padding = self.pkcs7padding(content)
        # 加密
        encrypt_bytes = cipher.encrypt(content_padding.encode('utf-8'))
        # 重新编码
        result = str(base64.b64encode(encrypt_bytes), encoding='utf-8')
        return result


    def aes_decrypt(self, content):
        """AES解密 """
        self.pkcs7padding(content)
        cipher = AES.new(self.key, AES.MODE_CBC, self.iv)
        content = base64.b64decode(content)
        text = cipher.decrypt(content).decode('utf-8')
        return text.rstrip(self.coding)

if __name__ == '__main__':
    key = '******'
    iv = '****'
    a = Encrypt(key=key, iv=iv)
    d = a.aes_decrypt(b64_string)
    print("解密:", d)

仅作为笔记记录,如有问题请各位大佬来指导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/688930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android实现拨打电话功能

Android实现拨打电话功能 先上UI效果图点击联系博主拒绝权限同意权限直接拨号 跳转到拨号界面跳转到拨号界面 同时附带号码 代码实现AndroidManifest.xml中添加权限点击联系博主判断是否有拨号权限申请权限回调直接拨号跳转到拨号界面跳转到拨号界面 同时附带号码 完整代码Main…

chatgpt赋能python:Python色板介绍:让数据可视化更加迷人

Python色板介绍:让数据可视化更加迷人 在数据可视化中,合适的配色方案是非常重要的。Python色板是一种常用的工具,可以帮助数据分析师和科学家创建漂亮、易于阅读的图表。本文将为大家介绍Python色板,包括一些主流的Python色板、…

百度排名代发|百度排名蜘蛛池代发收录排名接单!

百度排名代发|百度排名蜘蛛池代发收录排名接单! 推广告忽然没有展现了,咋回事? 这是今天一个粉丝问我的问题,我帮他看了一下,是因为他推广了一个打不开的链接,所以说百度没有给他展现,可以看一下这个还好…

微信小程序-上拉加载更多和下拉刷新

微信小程序-上拉加载更多和下拉刷新 下拉刷新 页面配置文件中配置"enablePullDownRefresh": true开启下拉刷新 {"usingComponents": {},"navigationBarTitleText": "订单列表","enablePullDownRefresh": true }设置onPul…

使用阿里云域名和腾讯云服务器 出现的问题--------记录

这里使用阿里云申请的域名&#xff0c;阿里云备案成功 服务器为腾讯云&#xff0c;后端使用的node这里获取数据时返回一篇html如下 <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta http-equiv"X-UA-Compatible" c…

【bug】vscode python 3.6 无法debug 解决方案

某个环境是使用python 3.6 安装的&#xff0c;vscode没法调试。是由于python插件太新了&#xff0c;直接下载一个&#xff0c;用VSIX安装 1.下载python 拓展包 https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/2022.6.0/…

【简单】使用ChatGPT和QT从零开始构建一个计算器应用

在这篇博文中&#xff0c;我将向大家展示如何使用ChatGPT和Qt来构建一个完整的计算器应用。我们将从零开始&#xff0c;逐步引导您完成整个项目&#xff0c;包括需求分析、软件设计、代码编写等环节。该项目代码全部由GPT编写,10分钟完成。 一&#xff0c;项目概述 本项目旨在…

数据库监控与调优【八】—— 索引类型

索引类型 MySQL有多种索引类型&#xff0c;使用不同的角度&#xff0c;分类也有所不同。 程序猿之间沟通时&#xff0c;经常会聊到各种索引类型&#xff0c;比如你说&#xff1a;“这是一个组合索引”&#xff0c;他说“这是一个聚簇索引”&#xff0c;如果不了解这些术语&am…

【计算机网络】UDP和TCP的对比

1.协议栈 2.面向连接&#xff1f; 3.支持单薄、多播、广播&#xff1f; 4.面向应用报文还是字节流&#xff1f; 5.应用场景 6.首部长度 7.小结

python 实现批量图片不拉伸尺寸归一化

在进行机器学习或深度学习之前&#xff0c;都要对样本图片进行预处理&#xff0c;其中需要将图片的尺寸统一调整。很多时候&#xff0c;样本的来源很多&#xff0c;尺寸和比例也不统一&#xff0c;可能来自于互联网爬虫&#xff0c;可能来自于不同的手机拍摄。如果将不同尺寸与…

CentOS Linux 8使用阿里源(安装jdk11、git测试)

一、备份 cd /etc/yum.repos.d/ mkdir bak mv CentOS-Linux-* bak二、下载新源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo三、安装软件测试 sudo yum -y install java-11-openjdk-devel java -versionsudo yu…

瑞亚太空活动公司RSA与英国国防与安全加速器达成量子项目合作

​ &#xff08;图片来源&#xff1a;网络&#xff09; 瑞亚太空活动公司&#xff08;RSA&#xff09;与英国国防与安全加速器&#xff08;DASA&#xff09;签署了合作协议&#xff0c;主要开发名为“无限交换”的可操纵量子真空的技术项目。这是RSA在英国签订的第一份合同&…

B端产品之数据分析能力

目录 学习目标&#xff1a;数据分析的思维框架以及工作需要的知识结构&#xff0c;数据分析结果外化-撰写数据分析报告 分析流程分析要点分析报告 数据分析流程 明确主题&#xff0c;尽量细化提出假设验证并修正假设&#xff1a;分析过程中对各个关联维度进行数据可视化观察…

怎么用迅捷PDF转换器在线提取PDF文件中的图片

大家在学习或者是办公中经常使用到PDF文件&#xff0c;我们在做一份工作文件的时候&#xff0c;需要一些资料来补充内容&#xff0c;这些资料是以PDF文件格式呈现&#xff0c;在使用PDF文件时&#xff0c;文件中有的图片做到很精细&#xff0c;想要单独提取保存下来备用。那么&…

【解决】IntelliJ IDEA无法识别package.json里面定义的脚本问题(npm: No scripts found)

错误提示&#xff1a;npm: No scripts found 在File-Settings-Editor-File Types&#xff0c;右边找到JSON&#xff0c;在File name patterns中添加了*.json,然后就识别了

全局安装vue脚手架,VSCode没有权限

一、全局安装vue脚手架 winR&#xff0c;输入cmd&#xff0c;打开命令行窗口&#xff0c;输入 npm install -g vue/cli &#xff0c;回车 npm install -g vue/cli 二、查看是否安装成功&#xff0c;出现版本信息&#xff0c;就表示安装成功 vue --version 三、打开VSCode&…

基于matlab偏振建模和分析(附源码)

一、前言 这个例子介绍了极化的基本概念。它展示了如何使用相控阵系统工具箱分析极化场并对极化天线和目标之间的信号传输进行建模。 二、电磁场的极化 天线产生的电磁场与远场中的传播方向正交。场可以指向此平面中的任何方向&#xff0c;因此可以分解为两个正交分量。从理论上…

EC\AC\BC\pair-wise组合覆盖测试技术

基本概念介绍 场景说明 某个美颜相机的系统测试&#xff1a; 被测对象1-【系统】取值有3种可能&#xff1a;windows\IOS\Linux 被测对象2-【摄像头】取值有4种可能&#xff1a;徕卡\索尼\三星\舜宇 被测对象3-【环境】取值有2种可能&#xff1a;白天\黑夜 问题&#xff1a;如何…

使用matlab求解常微分方程(组)问题

前言 介绍了常微分方程组的基本形式&#xff0c;并且介绍了matlab的数值和解析解法&#xff0c;以及给出了相应的案例。 前言1. 常微分方程组介绍1.1 一阶常微分方程组1.2 高阶常微分方程组1.2.1 形式1&#xff1a;单个高阶微分方程1.2.2 形式2&#xff1a;多个高阶微分方程组 …

XILINX 7系列FPGA普通IO与差分IO

&#x1f3e1;《Xilinx FPGA开发宝典》 目录 1&#xff0c;概述2&#xff0c;IO说明3&#xff0c;总结 1&#xff0c;概述 本文介绍XILINX 7系列FPGA普通IO和差分IO的识别方法与注意事项。 2&#xff0c;IO说明 7系列FPGA的绝大多数IO均支持差分&#xff0c;但是有些IO是不支持…