Python 爬虫逆向破解案例实战,微信公众平台js逆向改写

Py爬虫之 js逆向实战:某案例 在渗透学习的过程中,我们在测试未收权访问中,包括我们进行fuzz,都是需要获取js文件中的接口,然后进行进一步利用的,当然说这么多的根本原因是,越来越发现网络安全是一个全栈的学习路线,需要学习各种各样的知识,来提高自己的挖掘和利用能力,于是有了今天的这篇文章. 阅读详情

这篇博文我们继续去学习开发中经常用到的编码、消息摘要算法和加密算法方面的知识。作为开发者,掌握这些知识可以让我们在设计反爬虫时有更丰富的搭配。而作为爬虫工程师,掌握这些知识可以让我们在面对 奇怪 的字符串时能够更快地找到突破口。在学习和掌握了 js 加密及逆向之后,我们可以处理的爬虫问题如下:

(1) 模拟登录中密码加密和其他请求参数加密处理 (2) 动态加载且加密数据的捕获和破解

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

1. 背景介绍

微信公众平台,简称公众号。曾命名为 官号平台、媒体平台、微信公众号,最终定位为 公众平台,无疑让我们看到一个微信对后续更大的期望。

利用公众账号平台进行自媒体活动,简单来说就是进行一对多的媒体性行为活动,如商家通过申请公众微信服务号通过二次开发展示商家微官网、微会员、微推送、微支付、微活动、微报名、微分享、微名片等,已经形成了一种主流的线上线下微信互动营销方式。本文通过爬虫去模拟微信公众平台的登录。

2. 分析

点击 此处 进入到微信公众平台的首页面,然后鼠标单击 使用账号登录,如下图所示:

紧接着在账号和密码输入框中输入账号和密码,如下图所示:

在键盘中按下 <Fl2> 快捷键或者是鼠标右键单击选择 检查(inspect),打开浏览器开发者工具 (这里使用谷歌浏览器),然后在顶部导航条中选择 Network 选项,又由于登录一般都是使用的 ajax 请求,所以接着我们单击下方的 XHR,在这些准备工作都做好之后,我们就可以点击页面中的 登录 按钮,监听请求的 URL,如下图所示。

我们在全局当中对 pwd 进行搜索,发现 pwd 分别包含在 1个 css 文件及1个 js 文件中,经过分析判断,pwd 生成的规则最可能在 js 文件中,如下图所示:

进入到 js 源文件中之后,点击 Pretty-print 或者是 左下角的 {} 进行代码格式化,然后 ctrl + f 再次对 pwd 关键字进行搜索,如下图所示:

如果说鼠标左键单击或者是按住 ctrl + 鼠标左键单击仍然定位不到函数,我们可以采用断点的方式进入,如下图所示:

在这里我们可以定位到密码经过一定格式处理后的返回值,观察发现,返回值中有几个不同的函数,我们可以通过鼠标单击每个函数定位到函数的定义位置,一般来说,使用到的函数,都会在同一个作用域中,即在距离包含该返回值函数的上一层{} 中。找到所有的代码之后,复制到 js 调试工具中,博主在这里使用的是 发条js调试工具V1.9 ,读者可自行在网上搜索下载,如图所示:

加载成功之后,我们去调用函数,输入在网页端输入的密码,看是否能生成对应加密后的字符串,如下图所示:

经过和网页端对比发现,两者完全一样。此时我们就完全找到了 js 加密相关的函数。

3. 代码实现

在上面的过程当中,我们找到了所有关于 js 加密的函数,接下来我们的处理方式有 2 种:

(1) 使用 Python 的语法规则去改写所有的 js 加密函数,此种方法要求编码者有足够好的 python 基础,难度较大,不建议使用。 (2) 使用 Python 中的第三方模块去执行我们找到的 js 代码。首先要进行安装:

pip install PyExecJS  # 读者可以自行添加镜像源

建议大家在使用这个模块的时候,先安装好 Node.js 环境。提供该模块的学习网址,如下:

https://pypi.org/project/PyExecJS/

博主这里首先将找到的生成密码相关的 js 代码单独放到一个 js 文件中,然后通过 python 读取文件的方法将文件中的 js 代码读取出来,紧接着调用安装好的第三方模块中的方法进行执行。如下图所示:

示例代码如下:

# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:wechat.py
@time:2020/12/01
"""

import execjs

# node = execjs.get()  # 实例化一个对象
ctx = execjs.compile(open("./getPwd.js", "r", encoding="utf8").read())  # 编译
funName = "getPwd({})".format("135790")
pwd = ctx.eval(funName)
print(pwd)  # d3786ec2413a8cd9413bfcb24be95a73

程序运行结果如下:

 

4. 总结

  1. js 调试工具 — 发条 js 调试工具

  2. PyExecJs — 实现使用 python 执行 js 代码 环境安装:

  3. nodejs开发环境

  4. pip install PyExecJS

 

  1. js 算法改写初探 — 打断点 (代码调试时,如果发现了相关变量的缺失,一般给其定义成空字典即可)

  2. 原文地址:Python 爬虫逆向破解案例实战 (一):微信公众平台js逆向改写

至此今天的案例就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习Python基础的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!

 

python类逆向总结 Python是解释型语言,没有严格意义上的编译和汇编过程。但是一般可以认为编写好的python源文件,由python解释器翻译成以.pyc为结尾的字节码文件。pyc文件是二进制文件,可以由python虚拟机直接运行。Python在执行import语句时,将会到已设定的path中寻找对应的模块。并且把对应的模块编译成相应的PyCodeObject中间结果,然后创建pyc文件,并将中间结果写入该文件。 阅读详情

相关推荐

微信公众号平台js逆向分析

目录 前言 一、 js逆向分析 逆向总结 前言 我们登录微信公众号平台,发现密码字段被加密了,接下来对其js加密进行分析,并寻找出js加密代码 地址:微信公众平台 浏览器:360极速 js调试工具 一、 js逆向分析 1. 查看密文形态 因为登录的数据一般都是发送的ajax请求,所以浏览器这里直接点击XHR。如下,输入密码123456点击登录。发现密码字段被加密了,密文是字母和数字组成的且为32位长,到这里就要想到,可能是md5加密!! 我们可到 ——>md5在线解密破解将密..

渗透之路,攻防之间皆学问 4148

爬虫案例-使用Session登录指定网站(JS逆向AES-CBC加密+MD5加密)

总体概览:使用Session登录该网站,其中包括对password参数进行js逆向破解 (涉及加密:md5加密+AES-CBC加密) 难度:两颗星 目标网址:aHR0cHM6Ly93d3cuZnhiYW9nYW8uY29tLw== JS逆向部分总结: 1、在登录的时候对password参数与时间戳拼接; 2、对账号参数切及时间戳的拼接; 3、将部分关键数据转数组后先进行MD5加密处理; 4、最终将前面数据全部拼接对数据使用AES下的CBC加密 5、得到password的参数之后使用req

m0_61720747的博客 4586

Python爬虫逆向案例:微信公众平台JavaScript逆向改写

通过逆向改写微信公众平台的JavaScript代码,我们可以绕过其反爬虫机制,成功爬取所需的数据。通过逆向改写微信公众平台的JavaScript代码,我们可以绕过其反爬虫机制,成功爬取所需的数据。在实际应用中,您可能需要对JavaScript代码进行更多的修改和调试,以确保正确地模拟微信公众平台的行为。要绕过微信公众平台的反爬虫机制,我们需要进行逆向工程,分析其JavaScript代码,并进行改写。要绕过微信公众平台的反爬虫机制,我们需要进行逆向工程,分析其JavaScript代码,并进行改写。

HackDyno的博客 1611

微信公众号采集方案(基于Windows逆向)

引言 目前微信公众号采集基本只有几种特定的方法了 搜狗微信 无法采集历史了,而且搜索也不按时间排序。获取的数据的价值不高,不过可以通过他来获取公众号的biz。 微信公众平台 微信公众平台虽然可采集历史,但限制很大,没抓多少就被封接口了。 安卓端微信 网上很多关于xposed hook微信公众号实时推送文章的一些采集方案,这个能用。但是只能使用旧版微信,新版微信对xposed有检测。而且旧版微信会限制刚注册的微信号登陆。不过有方法解决:hook掉检测的代码,目前我还做不到这个程度。我见过有大佬实现

Qwertyuiop2016的博客 1万+

Python爬虫实战:逆向分析+异步技术高效抓取微信公众号文章

逆向突破:解析公众号核心接口参数,破解登录态与加密规则;高性能:异步协程+连接池,单进程日均抓取1000+篇文章;高稳定性:自动刷新登录态、IP代理轮换,无人工干预持续运行;高完整性:覆盖文章全量字段,清洗后可直接用于数据分析。接入消息队列(Kafka),实现分布式多公众号并行爬取;增加文章配图下载模块,完整存档多媒体内容;接入Elasticsearch,实现文章全文检索与关键词分析。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3260

最新微信公众平台JS逆向分析

目标网址:https://mp.weixin.qq.com/ 重要说明:文章教程仅供参考学习,请勿用于非法用途,否则后果自负。 1、接口参数分析

猿小白的博客 1328

Python爬虫从入门到精通:(41)JS逆向_RSA加密,Steam加密逆向_Python涛哥

RSA加密: RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。 非对称加密算法: 非对称加密算法需要两个密钥: 公开密钥(publickey:简称公钥) 私有密钥(privatekey:简称私钥) 公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 注意: 使用时都是使用公匙加密使用私匙解密。公匙可以公开,私匙自己保留。 算法强度复杂、安全性依赖于算法与密钥但是由于.

程序员涛哥的博客 1160

DSP配置I2C通讯(非IO口软件模拟时序)

dsp即数字信号处理器,是一种广泛应用的嵌入式处理器,主要应用是实时快速地实现各种数字信号处理算法,目前,国际主要的dsp供应商是ti公司,其tms32系列产品占据了dsp市场近一半的份额,本文以TMS320F28377D为例,使用ti公司dsp开发工具ccs10.1配置i2c模块。 写这篇文章的缘由,因为市面上很多DSP其实内部是具有硬件I2C接口的,但由于网络上大部分资料和例程都是利用IO口模拟I2C时序进而实现I2C通讯的。给很多想学习硬件I2C通讯的小伙伴带来了困难。 下面先介绍一下配置步骤 1.E

weixin_44387442的博客 5544

【前端安全】js逆向之微信公众号登录密码

随着发展,越来越多的登录页面添加了密码加密的措施,使得暴力破解变得不在简单,往往需要进行 js 逆向获得加密函数,才好进行下一步操作。

qinjilll的博客 1270

游戏开发实战:如何用旋转矩阵实现2D角色平滑转向(附Unity代码)

本文深入探讨了在Unity游戏开发中,如何运用旋转矩阵原理实现2D角色的平滑转向。文章从核心理论出发,提供了计算目标旋转、实现平滑插值(Lerp与SmoothDamp)的完整C#代码,并解决了与动画系统、物理引擎协同的常见难题,帮助开发者提升游戏操作手感与视觉流畅度。

weixin_29057237的博客 287

TMC5130/TMC5160步进电机驱动芯片深度解析与工程实践

步进电机驱动芯片是精密运动控制系统的物理执行核心,其性能直接决定定位精度、运行噪声与系统鲁棒性。基于电流闭环控制与电压前馈调制的混合驱动原理,现代智能驱动芯片如TMC51X0系列实现了微步插补、堵转检测和片上运动规划等关键技术突破。这类芯片通过SPI寄存器级配置实现StealthChop静音驱动与SpreadCycle高动态响应模式的无缝切换,在3D打印、CNC、机器人关节等场景中显著提升能效比与控制带宽。本文围绕TMC5130与TMC5160的硬件架构差异、寄存器操作时序、驱动模式物理机制及FreeRTO

weixin_35797963的博客 409

微信公众平台js算法逆向

大家好我是J哥,js逆向已经是爬虫工程师进阶必会的了,今天我来带领大家演练一下关于微信公众平台js算法逆向的学习,希望对大家有所帮助。

Laity 757

西门子S7-1500 PLC模块化编程与生产线自动化实践

PLC(可编程逻辑控制器)作为工业自动化核心设备,其模块化编程技术能显著提升产线控制系统的开发效率。通过SCL高级语言实现算法封装、功能块(FB)复用等工程实践,可构建稳定可靠的分层式控制架构。本文以西门子TIA Portal平台为例,详解S7-1500系列PLC在汽车零部件产线中的标准化应用方案,包含配方管理、设备联动等典型场景的SCL实现,以及Profinet通信、虚拟轴同步等进阶技巧。特别适用于需要快速实施中大型生产线自动化改造的工程师,提供经过验证的异常处理机制和模块化设计规范。

weixin_34341229的博客 457

python爬虫之js逆向案例教学

本节主要围绕一个案例来对js逆向的深入了解,

空城的博客 2931

Android 11多窗口+分屏+APP窗口嵌套TaskView实现原理一

然而随着版本的迭代升级,google对分屏的定制差异化也越来越大,Androd 11的分屏用的是split-screen-primary和split-screen-secondary的方式,在systemui中去实现的,其定制化的灵活度不是很高,很多业务都是放到sustemui或者fw去实现,但是随着版本的升高,后面出现了TaskView来替代了老版本的分屏方式,但是Task的核心原理其实和之前的方式是一样的,TaskView来实现分屏。

qq_18420641的博客 2614

lammps教程:FeNiCr合金多晶结构建模方法

大家好,我是小马老师。 本文介绍合金多晶模型的建模过程,使用的软件为Atomsk。 Atomsk是一个开源软件,可运行在windows、linux等多种操作系统上,本文使用windows版的Atomsk实现建模,其他操作系统的建模命令基本相同。 建模过程如下: 1. 生成单晶Fe晶胞 atomsk --create fcc 3.65 Fe Fe.xsf 2. 建立多晶节点文件polycrystal.txt 新建一个文本文件polycrystal.txt,文件内容为: box 200 100 200 ran

lammps_jiayou的博客 6658

爬虫 — Js 逆向案例一英汉互译

目标网站:https://fanyi.baidu.com/需求:实现英汉互译1、分析网站加载方式动态加载,目标 url:https://fanyi.baidu.com/v2transapi?2、分析请求方式post(携带 data 参数)多抓几个包看数据变化会产生变化并且必不可少的参数:sign 加密字段3、根据加密字段找和它相关的 js 文件按 F12 打开开发者工具,找到 Search,点击4、在搜索框输入加密参数后,按回车5、寻找与加密参数相关的 js 文件。

GitHub质检员 917

使用MATLAB/Simulink对一个简单的智能家居温湿度监测与控制系统进行建模和仿真

目录手把手教你学Simulink——基于Simulink的智能家居温湿度监测与控制仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:构建传感器模块步骤3:添加控制器步骤4:构建执行器模块步骤5:连接各部分步骤6:设置仿真参数步骤7:添加观测器步骤8:运行仿真并分析结果四、总结 智能家居系统中的温湿度监测与控制系统是一个典型的物联网(IoT)应用场景,它通过传感器收集环境数据,并根据预设条件自动调节室内温度和湿度以提高居住舒适度。本指南将介绍如何使用MATLAB/S

xiaoheshang_123的博客 291

Python爬虫js逆向+实战

我们可以逐步的往内去分析,看每次传入的数和返回的参数**这是逆向最重要的一点(过程就是一步步的往里找) 我们现在看到了组包,还得继续往内找, 发生事 this.paramData 来接受的请求参数 我们接着去找paramData。5.我们现在现在通过包的启动器来看一下堆栈的信息,Send 有两个 VM的我们就先不考虑, 我们点击后面的链接可以调到send 的js代码段。我们现在拿到了请求参数,但是我们需要知道那些值是会变的,那些值是不变的,变动的值我们需要去获取他的加密js。v2transapi?

weixin_42955222的博客 7080

【YoloV12改进策略】基于流形约束超连接(mHC)增强YoloV12全局特征提取能力_独家复现_梁文峰署名论文

论文标题:流形约束超连接 (Manifold-Constrained Hyper-Connections, mHC)核心问题:针对超连接 (Hyper-Connections, HC) 扩展残差流宽度时破坏恒等映射、引发训练不稳定性和高内存开销的问题,提出一种约束性框架。目标:恢复残差连接的稳定性与可扩展性,同时保持HC的性能增益。基准模型:基于DeepSeek-V3的MoE架构,进行了3B、9B、27B模型的实验验证。论文图示mHC 是一个通用的HC扩展框架。

m0_47867638的博客 1353

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度解析:用Python爬虫逆向破解加密数据!

大家好!我是敢敢,关注我,收看每期的编程干货。本期文章将带你详细地逆向解析某查查加密数据的构造逻辑,Follow me~

xiaoganbuaiuk的博客 3万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

js解密学习--steam登入密码解密分析

个人学习,steam逆向js解密

rapgod123的博客 1770

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JavaScript逆向爬虫实战分析

JavaScript的Hook操作,找到某个方法执行位置,快速定位逆向入口。

Bruce_xiaowei的博客 1423

【··案例··】【19.某易云音乐】请求逆向解析,数据算法解密(详细笔记)

某易云音乐 1. 定位爬取的数据包 2. 接口分析 查看请求头 查看参数 3. 获取加密方式 定位功能函数 方式1. 逐个补函数 方式2. 根据作用域补函数 匿名函数 函数表达式 箭头函数 整体思路 代码 Python 调用代码 4. 总结

weixin_43612602的博客 1638

使用RSA加密在Python中逆向shell

i春秋翻译小组-Neo(李皓伟) 使用RSA加密在Python中逆向shell 这是一个关于使用RSA加密编程逆向shell的python教程。 我想提一下,这篇文章更多的是关于理解shell中涉及的加密而不是shell本身。 github的链接是https://github.com/ca10x/RSA-reverse-shell 侦听器 首先,我们需要一个侦听器来处理所有传入的连接。 这...

xiaoi123的博客 519
上一篇: Python制作塔防小游戏!这个塔防游戏有点东西!
下一篇: 抓取京东苹果手机评价!苹果手机质量还是非常不错的!
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值