首页 > 其他分享 >爬虫-获取某网站token(可变参数)的过程

爬虫-获取某网站token(可变参数)的过程

时间:2022-10-16 21:57:48浏览次数:84  
标签:CBC ZeroPadding 爬虫 token 可变 var data PCKS7

使用Selenium去获取token

首先说明该方案失败了。由于该网站是不需要登录的,我分析了所有的请求过程,没有找到服务端返回token的请求。最终还是抱着试一试的心态,使用selenium去打开了网站,然后获取了一下local storage和session storage的token值,返回的都是None,因此判定该token值是前端生成的。

分析前端压缩混淆的js文件

使用vscode打开app.js文件后,进行格式化处理,然后全文检索“token”,共找到了6处,简单分析后定位了token生成的关键代码段:

var v = s.a.createHash("md5");
v.update("<固定字符串>" + (new Date).format("yyyymmdd"), "utf8");
var y = v.digest("hex") + "@" + Object(m["a"])((new Date).format("yyyymmdd"));
b.interceptors.request.use(function (e) {
	return "undefined" == typeof e.data ? e.data = "token=" + y : e.data = e.data + "&token=" + y, e
}
...
...
o = function (e) {
	var n = c.a.enc.Latin1.parse("<密钥>"),
	t = c.a.enc.Latin1.parse("<iv值>"),
	a = c.a.AES.encrypt(e, n, {
		iv: t,
	  mode: c.a.mode.CBC,
	  adding: c.a.pad.ZeroPadding
	}).toString();
  return encodeURIComponent(a)
},

通过上面的代码段不难得出token主要由两部分组成:以@字符进行拼接,第一部分使用一个固定的字符串+时间,然后计算出的md5值,第二部分是用AES128 CBC PCKS7对时间值进行加密后得到。之后用python编写token生成的工具,实现了基本目标。

备注:为什么是PCKS7?代码里面明明是ZeroPadding,因为按照ZeroPadding进行加密后,得出的值与实际值不一样,最后经过不断尝试AES CBC模式下其他填充模式,得到实际加密模式为:AES128 CBC PCKS7。

标签:CBC,ZeroPadding,爬虫,token,可变,var,data,PCKS7
From: https://www.cnblogs.com/java-six/p/16797326.html

相关文章

  • 爬虫实例——爬取豆瓣网 top250 电影的信息
    本节通过一个具体的实例来看下编写爬虫的具体过程。以爬取豆瓣网top250电影的信息为例,top250电影的网址为:​​https://movie.douban.com/top250​​​。在浏览器的地址栏......
  • Persistent data structure 不可变数据结构
    持久性变数据不要和持久储存相混淆在计算机中持久性数据或非临时数据是一种数据结构,在修改时始终保持其自身的先前版本。这些数据实际上是不可变的,因为对这类数据操作不会......
  • 练习爬虫的几个网站
    https://scrape.center/https://www.zhihu.com/question/36132174/answer/70798699......
  • 使用python爬虫爬取数据集保存到csv或者excel中
    准备下载库在编写代码时需要使用的python库要提前下载pipinstallbeautifulsoup4pipinstallopenpyxlpipinstallrequests相关库的文档openpyxl-读/写Excel......
  • Python简单爬虫
    对大佬的有些修改,用大佬的编码转换那里老是出问题这个亲测可以#-*-coding:utf-8-*-importrequestsimportparselurl=""#小说网站response=requests.get(url)respo......
  • cookie、session、token
    为什么要用Session和Cookie?因为Session和Cookie可以记录用户状态信息其实说到底,cookie、session、token都围绕了一个点:身份认证。 为什么要认证一个需要登录......
  • 强大的爬虫框架 Scrapy
    本节来介绍一个强大的爬虫框架Scrapy。Scrapy是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,可以灵活完成各......
  • 爬虫的基本原理
    一、爬虫的基本原理网络爬虫的价值其实就是数据的价值,在互联网社会中,数据是无价之宝,一切皆为数据,谁拥有了大量有用的数据,谁就拥有了决策的主动权。爬虫聚合站点https://......
  • 使用Keras生成可变尺寸输入数据的神经网络
    本教程发布于博客园,转载请注明出处!问题:在使用神经网络处理实际数据时,往往遇到数据尺寸不相同的情况。例如:训练得到一个图片去雾模型后,需要对不同尺寸的照片去雾。解决方......
  • 方法里面的可变参数
    publicstaticvoidmain(String[]args){userRegist("admin","1243","江西");}//可变参数,一个方法里面只有一个可变参数不能有其他参数,且......