Python爬虫高级之JS渗透登录新浪微博 | 知了独家研究

AI逆向工程师学习路线:从爬虫基础到智能Agent实战 在网络安全与数据采集领域,逆向工程是理解系统内部逻辑、分析数据流与协议的关键技术。其核心原理在于通过静态分析与动态调试,解析软件或网络应用的行为机制,从而复现或绕过其限制。随着AI大模型的兴起,传统逆向技术正与智能体(Agent)深度融合,催生出新一代技术范式。AI能够辅助工程师快速理解混淆代码、生成解密函数,甚至构建自适应网站变化的智能爬虫Agent,极大提升了逆向分析与数据采集的效率和智能化水平。这种融合技术尤其适用于复杂反爬策略应对、自动化安全测试及大规模数据采集等场景,为工程师提供了从基础爬虫到AI 阅读详情

小伙伴们看到标题可能会想,我能直接自己登陆把登陆后的cookie复制下来加到自定义的请求头里面不香嘛,为什么非要用python模拟登录的过程?如果我们是长期爬取数据,比如每天早上中午和晚上定时爬取新浪,那么,这个方法对我们来讲可能就非常的不方便了,因为我们一直都在重复的做登录复制的劳动,这对我们程序员甚至是普通人来讲都是很不友好的。

所以,今天我给大家带来用python模拟登录新浪微博的过程。
在这里插入图片描述

一、JS渗透爬虫准备工作

在介绍代码之前,我先说一下代码中用到的库。

1.rsa(是一个非对称加密算法,需要pip安装一下)
2.Requests(可以说,只要有爬虫的地方大多数都有它)
3.base64(加密算法)python内置的
4.time(时间模块)
5.json(处理字符串的)
6.binascii(这个是处理16进制数的,可以将前面多余的显示十六进制信息的符号去掉)

1.工具介绍

然后我们用到的抓包工具,Fiddler 4。这款工具,在爬虫这里来讲,尤其是涉及到了高级和js渗透,没有这个工具肯定是不行的。

由于在这里我们还涉及到js渗透,所以推荐使用的浏览器是谷歌浏览器,我们的例子也是用谷歌浏览器实现的。现在,我必须先介绍一下js渗透的基本思想和方法。

Js渗透,故名思意,就是利用js代码,从而分析出网页中的参数到底是怎么来的,从而模拟关键参数构造的过程,从而可以自己构造数据包,达到我们想要达到的目的。

那到底如何渗透呢?我们先来了解一下我们的工具!

2.谷歌浏览器
在这里插入图片描述
首先,我们看第一个两个箭头所指的Elements,在元素这一栏里面,右边有一个事件,也就是EventListeners,点击这个栏目,我们可以看到click这个字段,我们点击它,会看到出现了几个栏目,这个就是我们触发调试的关键,在click中,只要我们的鼠标点击一次,就相当于出发了一个焦点,每触发一个焦点,就会触发调试,当然,这个是需要我们打断点的,至于怎么打断点,我在下面会讲到。在触发的焦点中,我们需要的是登录这个按钮的这个触发点,click,因为这个很关键,如图:
在这里插入图片描述
要唤出我们需要的点击事件,我们需要用如下图所示的小鼠标,点击它,然后再点击上面的登录按钮,这样,在click中就能够跳出我们想要的触发事件,如图:
在这里插入图片描述
Console这个模块。这个模块非常的有意思,它是我们看js内部代码的关键所在,等等我们就会演示。

Source:这个模块就是用来看js代码的,这里我们点击 source,然后看一下右边的栏目:
在这里插入图片描述
箭头从右至左分别是,调试的暂停,下一步,进入到改行代码的函数中,以及跳出函数继续执行。这个是我们调试的另一个关键的模块。我们可以发现,上面图片中的js代码根本不是人看的,当然这个不要紧,我们可以注意到,图片左下角有一个{},点击它,就可以让代码变成人可读的样子。

Network:这个是chrome自带的抓包模块,在这里面,我们可以抓到每个请求的http包。使用方法就是如图:
在这里插入图片描述
左边的箭头是停止抓包,右边的箭头是清除抓到的包。点击图中的Initiator,可以进入到该包的js模块中,这个也是我们等等会重点用到的。

3.Fiddler

我最后再介绍一下fiddler这个软件,这个软件在网上可以下载,是免费的。

它是一款在osi七层模型中抓取应用层上面http协议的软件,它在爬虫中的地位也是很高的,也很重要。
在这里插入图片描述
我们可以看到,上面就是协议包,而哪个capturing就是正在抓取的意思,我们可以再抓取到我们想要的数据包的时候,再点击它,将抓包停止。
在这里插入图片描述
这里就是我们需要看参数的地方,非常的关键,因为我们的参数就是从这里观察到的。

如果显示不了文本就点击黄色的那一栏,这样就可以转码了。当然我们还需要善于利用查找关键字来定位我们的参数在哪里。

大家一定要注意,全局搜索的用处是很大的,平常大家的搜索技能在爬虫中可以更加充分的发挥作用。

二、微博实战

1.Fiddler抓包应用

现在让我们看看到底怎么样实现微博登录的吧。

第一步,我们打开新浪的网站,网站的url是:https://weibo.com/

然后,我们打开fillder这个抓包工具,记住,我们先输入账号和正确的密码,点击登录,然后等到登陆后的页面出来后,我们停止抓包,我们可以看到如下的数据包:

当然,一开始使用fiddler可能会出现读者抓不到包的情况,这个也有解决办法:我们点击左上角的Tools,然后点击里面的Options选项,在跳出来的框中,点击HTTPS,然后点击Actions,点击跳出来的第一个选项,然后按yes,之后一直同意就好了,接下来我们就能抓包了。
在这里插入图片描述
我们发现,在数据包中有一个带login的url,这个我断定应该是一个登录请求,那是不是说,只要构造这个包里面的参数,就可以进行模拟登录了呢?

现在,我们来看一下这个包里面具体的数据:
在这里插入图片描述
在这个数据包中,我们能看到有很多的参数,但是参数我们都说分成固定的参数和动态的参数,固定的参数,我们只需要复制黏贴就行,但是,动态参数是需要我们模拟的,所以,我们需要在这些参数中,找到动态的参数。找法就是多发送几次请求用错误的密码,正确的密码去试,然后对比这几次抓到的同一个包。这里我们把这个步骤留给读者自己验证,现在我来说结论,我发现,nonce,sp,rsakv,servertime这几个参数是会变的,其他参数是固定的。那么,接下来,我们就是要模拟这些参数,搞清楚它们是怎么来的。

首先,我们利用查找功能,查找nonce的出处,如图:
在这里插入图片描述
这个软件会将关键字出现的地方标黄。

我们点击prelogin这个包,发现在它的数据体里面出现了nonce:
在这里插入图片描述
以及rsakv也出现在这个里面。从这里,我们可以得出结论,是不是我们只要构造这里面的参数,就可以拿到这两个动态参数呢?经过实践,这个结论确实是正确的。

2.代码构造参数,抓取第一部分的关键信息

接下来就是代码的实现:

import requests
import time
import base64
import json,rsa,binascii
username = '15952081***'# 手机号
深入解析XSS漏洞:从原理到实战攻防 跨站脚本攻击(XSS)是Web安全领域最常见且危害巨大的漏洞之一,其核心原理在于浏览器对同源内容的信任机制被恶意利用。攻击者通过将恶意脚本注入到可信网站中,当其他用户访问时,浏览器会将其视为合法代码执行,从而突破同源策略的防护。这种攻击的技术价值在于它能直接窃取用户会话Cookie、发起键盘记录或钓鱼攻击,甚至结合其他漏洞形成蠕虫传播,对用户数据和应用安全构成严重威胁。在实际应用场景中,XSS漏洞广泛存在于用户输入点,如搜索框、评论区和URL参数等,攻击者常利用存储型XSS实现持久化攻击,或通过DOM型XS 阅读详情

相关推荐

Web安全基石:深入理解XSS跨站脚本攻击原理、类型与防御实战

跨站脚本攻击是Web安全领域的核心漏洞类型,其本质是攻击者通过注入恶意脚本,利用浏览器对服务器内容的信任机制,在用户端非授权执行代码。从技术原理看,XSS攻击主要分为反射型、存储型和DOM型三类,分别对应不同的注入与触发方式。其技术价值在于揭示了Web应用对用户输入验证与输出编码的重要性,是构建纵深防御体系的典型场景。在工程实践中,防御XSS需要贯彻输入验证、输出编码、内容安全策略等多层防护,并利用现代前端框架的自动转义特性。本文结合实战案例,详细拆解了XSS的攻击链条与防御策略,特别是针对存储型XSS和D

dianchaozong3657的博客 586

python工具系列-弱口令工具

python弱口令扫描工具-初始版 本篇博客记录下基于python写的gui小工具,也是我学python以来自己动手写的第一款交互型的工具 Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。 本次用到的主要是tkinter模块 引用如下 from

win176489的博客 2090

利用Python渗透实现沙箱逃逸,看黑客是如何绕过网站的防护的?

Python的沙箱逃逸的最终目标就是执行系统任意命令,次一点的写文件,再次一点的读文件。接下来的内容先讲系统命令执行,再讲文件写入、读取,并且均以oj为例,库大多以os为例。

Yuki1127918的博客 1675

打穿内网之Vulntarget-a靶场实战记录

内容包括:通达OA未授权上传+文件包含RCE、Redis未授权写马、ms17-010永恒之蓝、代理转发内网跳板、CVE-2020-1472 域控杀器Zerologon、wmiexec/smbexec横向移动、cobalt strike与msf的shell传递

tpaer的博客 3033

已解决-Parallels Desktop 16 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络

我是月球挖掘机,相信不少打工人为了尝鲜已经更新了MacOS 11 Big Sur,当然,苹果每次的系统大更新,都会给我们软件的功能无法使用惊喜,这次的也不例外。 这个问题是我在更新macOS Big Sur之后,Parallels Desktop打开虚拟机后,提示: 报错信息 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络 这是我的软件版本: 起初我以为是我的虚拟机坏了,结果重装了一遍虚拟机,没有任何用处。我开始在网上找方法,只能找到那个使用命令行打开软件的命令,除此之外没有了

月球挖掘机 5万+

Mac 环境配置jdk、Maven

3、终端打开配置jdk时候建好的脚本文件: open -e .bash_profile。4、查看maven是否安装成功和系统能不能识别maven/mvn命令:⬇️。输入⬇️并保存: 其中第一行JAVA_HOME替换为自己下的jdk路径。,安装编译好的二进制版本,具体安装zip还是tar.gz我看的。5、查看jdk是否安装成功和系统能不能识别java命令:⬇️。至此,我的Mac系统的环境配置jdk、Maven完成!然后就发现我的maven命令还是没作用,不识别,下载后直接安装即可,很快,点几下就OK了。

weixin_42416791的博客 4412

常见机械臂模型不用找!Mujoco这儿都有!

高质量的模型集合,franka panda,so-arm100,ur之类的机械臂都有。常见机械臂模型不用找!Mujoco这儿都有!大概346M,网速不行的可以下载zip。

darcsdn 993

Android Qcom Display学习(十一)

该系列文章总目录链接与各部分简介:本章主要是基于MIPI Payload传输接口的学习,包括Generic和DCS的接口不同。底层都是基于去封装的,下面第一部分调用原生接口,第二部分分析高通是如何进行读写操作的。

Android驱动开发 3184

基于YOLO26深度学习框架的文档表格识别系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的文档表格识别系统实现方法。系统采用YOLO26网络架构,通过数据预处理、模型训练、检测推理和表格分析四个模块实现高效表格识别。研究详细阐述了数据归一化、增强等技术处理,以及采用迁移学习策略优化模型训练过程。实验表明,该系统能有效识别多种表格结构并生成结构化数据,为文档自动化处理提供了可靠解决方案。

一键难忘的博客 976

本地搭建 GitLab 14.1.0版本CI/CD

GitLab 镜像版本 gitlab/gitlab-ce:14.1.0-ce.0 GitLab Runner 镜像版本 gitlab/gitlab-runner:v14.1.0 搭建此套环境是在一台32G的windows电脑上安装的。 使用dokcer安装。 此外还涉及的软件Docker Desktop,WSL 安装GitLab 首先启动 dockcer,打开WSL 打开后 首先定义GitLab的持久化目录 export GITLAB_HOME=/srv/gitlab 然后运行安装GitLab的命令

知无涯 4492

【软考高级架构】案例题考前突击6——大数据架构

前一类的数据主要由流量方以接口的方式提供(比如对接的腾讯广点通平台),后一类则是某网特有的数据,通过买家的浏览、下单、付款日志算出来。1. 在数据层面只维护一张包含所有指标的MySQL表,表中的stday字段作为索引,stday=当天的保存实时数据,stday<当天的保存离线数据。典型的大数据架构,除了Lambda架构之外,还有kappa架构,这两个架构的区别如下标所示,请补充表中空(1)-(4)第二,实时数据只对接了内部的kafka消息,没有实时的获取第三方的曝光、点击、浏览数据。

qq837993702的博客 68

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

efm32 入门.pdf

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 听说Python不能用于大型项目?
下一篇: 深刻理解Python中的元类(metaclass)
jspython
博客等级 码龄7年 61粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值