某mps政务网站jsl加速乐cookie逆向解析

本文针对的目标网站如下,使用base64解密获得
aHR0cHM6Ly93d3cubXBzLmdvdi5jbi8=

开篇:加速乐其实算是比较好处理的逆向问题了,了解过的朋友都知道,其本身跟瑞数相似,都是设置cookie后才能成功,设置cookie的过程远比瑞数要简单的多,接下来我们看具体问题

首先清除掉浏览器cookie,刷新网站后,会看到三次请求过程
在这里插入图片描述
第三次才请求成功,我们先看最后一个请求成功的请求cookie,需要附带两个cookie才能请求成功
在这里插入图片描述
这里的第一个cookie不需要解密,在第一次请求后就会返回响应cookie,那么我们只需要分析第二个cookie的生成即可
在这里插入图片描述

我们逐步分析每一个请求中的响应
在这里插入图片描述

第一个请求中只返回一个script标签,可以看到,里面的js代码已经对docuemnt.cookie进行赋值了,这里的值用的aaencode加密,我们把这段代码直接放到本地来运行,并补齐一下里面缺少的环境,因为这段代码是动态生成的,所以我们也动态的返回cookie

补环境代码:

document = {};
location = {pathname: '/article/details/132409595',search: ''
};{jscode} //替换的代码function get_cookie() {return document.cookie;
}

成功拿到cookie后,我们进行第二次请求,我们发现这次返回了一大串js
在这里插入图片描述

同样使用第一次的方法,将环境补齐,动态替换后,也能达到第二次的cookie,代码如下:

window = global;navigator = {userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}document = {}
location = {"ancestorOrigins": {},"href": "https://crawler.blog.csdn.net/article/details/132409595","origin": "https://crawler.blog.csdn.net","protocol": "https:","host": "crawler.blog.csdn.net","hostname": "crawler.blog.csdn.net","port": "","pathname": "/article/details/132409595","search": "","hash": ""
}{jscode} // 替换的代码setTimeout(function() {console.log(document.cookie);
}, 2000);

注意:因为发现第二次的js代码中对cookie赋值,是一个定时器,为了不破坏原代码,我这里选择用命令行执行js代码,通过获取命令行输出的方式来获取cookie

在这里插入图片描述
上图为延迟生成的cookie

接着,我们将代码整合一下,使用python

import requests
import execjs
import re
import subprocess
session = requests.session()
jsl1 = open("jsl.js", "r", encoding="utf8").read()
jsl2 = open("jsl2.js", "r", encoding="utf8").read()
headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'no-cache','Connection': 'keep-alive',# 'Cookie': '__jsluid_s=eb68cf3b6f222e7557c5ac0eb5c89f23; __jsl_clearance_s=1704942137.095|0|Q0rq1qKDyBDFY0fr70q51w%2Bhk9M%3D','Pragma': 'no-cache','Referer': 'https://www.mps.gov.cn/n2254098/n4904352/index_3497341_70.html','Sec-Fetch-Dest': 'document','Sec-Fetch-Mode': 'navigate','Sec-Fetch-Site': 'same-origin','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"',
}response = session.get('https://www.mps.gov.cn/n2254098/n4904352/index_3497341_70.html', headers=headers)
print(response)
pattern = re.compile('<script>(.*?)</script>', re.S)
result = pattern.findall(response.text)
if result:jscode = result[0]# print(jscode)jsl1 = jsl1.replace("{jscode}", jscode)
jsl1 = execjs.compile(jsl1)
jslcookie1 = jsl1.call("get_cookie")
jslcookie1 = jslcookie1.split(";")[0]
cookie_key, cookie_value = jslcookie1.split("=")# print(jslcookie1)
session.cookies.update({cookie_key: cookie_value})
response = session.get('https://www.mps.gov.cn/n2254098/n4904352/index_3497341_70.html', headers=headers)
print(response)
pattern = re.compile('<script>(.*?)</script>', re.S)
result = pattern.findall(response.text)
if result:jscode = result[0]# print(jscode)jsl2 = jsl2.replace("{jscode}", jscode)
with open("jsl2_cookie.js", "w", encoding="utf8") as f:f.write(jsl2)# 执行命令并获取输出
result = subprocess.run(['node', 'jsl2_cookie.js'], capture_output=True, text=True)jslcookie2 = result.stdout.split(";")[0]
cookie_key, cookie_value = jslcookie2.split("=")
session.cookies.update({cookie_key: cookie_value})
# print(jslcookie2)response = session.get('https://www.mps.gov.cn/n2254098/n4904352/index_3497341_70.html', headers=headers)print(response)
# print(response.text)

成功拿到响应
在这里插入图片描述

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

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

相关文章

ChatGPT会给教育界带来怎样的冲击,又将与教育碰撞出怎样的火花?

11 月 7 日凌晨&#xff0c;美国人工智能公司 OpenAI 的开发者大会正式开启&#xff0c;创始人 Sam Altman 和其同事&#xff0c;发布了团队最新的成果GPT-4 Turbo&#xff0c;新一代的GPT不仅更快、有更长的上下文、而且更好的控制。而随之推出的「GPTs」——让人们能用自然语…

炫云云模型常见咨询问题TOP榜

在上一期&#xff0c;小编带大家盘点了炫云云渲染软件相关常见咨询问题。这份榜单不仅是对过去一年用户关注焦点的回顾&#xff0c;更是一个汇总了各类问题解答的宝典。无论您是初次使用还是老用户&#xff0c;都能帮助您更快速地解决疑问&#xff0c;提升使用炫云各类产品的便…

Vs2019创建c文件

每一个人都是小白开始学习的&#xff0c;学长本身在开始学习计算机编程以前&#xff0c;也是对编程语言畏之如虎&#xff0c;一头雾水。成长都是有规律的&#xff0c;&#xff0c;都是从不会到会&#xff0c;再从会到熟练。如果要问我为什么&#xff0c;唯有多练习耳&#xff0…

分布式引擎Elasticsearch本地部署并结合内网穿透远程访问

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

LeetCode-1822/1502/896/13

1.数组元素积的符号&#xff08;1822&#xff09; 题目描述&#xff1a; 已知函数 signFunc(x) 将会根据 x 的正负返回特定值&#xff1a; 如果 x 是正数&#xff0c;返回 1 。 如果 x 是负数&#xff0c;返回 -1 。 如果 x 是等于 0 &#xff0c;返回 0 。 给你一个整数数组…

详解java中ArrayList

目录 前言 一、ArrayList是什么 二、ArrayList使用 1、ArrayList的构造 2 、ArrayList常见操作 3、 ArrayList的遍历 4、 ArrayList的扩容机制 三、来个练习 前言 当你看到这篇文章我觉得很好笑&#xff0c;因为我开始也不懂ArrayList现在轮到你了&#xff0c;嘻嘻嘻&am…

Redis面试篇

redis面试题主要内容 面试官在面试时主要会问以下这些方面的问题 下面是一些问题示例&#xff1a; redis-使用场景 缓存 缓存穿透 介绍 缓存穿透&#xff1a;查询一个不存在的数据&#xff0c;mysql查询不到数据也不会直接写入缓存&#xff0c;就会导致每次请求都会去查数…

001讲:CAD对话框出现乱码解决方案——CAD知识讲堂

CAD对话框中字体乱码的解决办法&#xff1a; 删掉CAD安装文件目录font字体库的 simsun.ttc 文件&#xff0c;然后彻底关闭CAD&#xff0c;重新打开cad即可解决问题。 如果还不行&#xff0c;对话框出现乱码原来是拷贝CAD字体中存在.TTC和*.TTF格式文件的问题&#xff0c;找到ca…

Redis未授权访问漏洞复现与工具安装

目录 一、漏洞简介 二、靶场搭建 三、漏洞检测 四、工具安装 五、远程连接 六、利用Redis写入webshell 七、redis-getShell工具 八、ssh公私钥免密登录 九、其他 一、漏洞简介 redis是一个数据库&#xff0c;默认端口是6379&#xff0c;redis默认是没有密码验证的&…

了解Python中的requests.Session对象及其用途

前言 在Python的网络编程中&#xff0c;requests库是一个非常流行的HTTP客户端库&#xff0c;用于发送各种类型的HTTP请求。在requests库中&#xff0c;requests.Session对象提供了一种在多个请求之间保持状态的方法本文将探讨Python中的requests.Session对象及其用途&#xf…

联想电脑打开视频显示禁止相机排查

场景&#xff1a; ** 原因排查&#xff1a; ** windows设置>隐私> 电脑 联想管家 > 电池管理

老生重谈:大模型的「幻觉」问题

一、什么是大模型「幻觉」 大模型的幻觉问题通常指的是模型在处理输入时可能会产生一些看似合理但实际上是错误的输出&#xff0c;这可能是因为模型在训练时过度拟合了训练数据&#xff0c;导致对噪声或特定样本的过度敏感。 "大数据幻觉"指的是在处理大规模数据时…

Type-C双盲插显示器,无需外挂MOS最简版本

在2021年5月&#xff0c;USB-IF协会破茧而出&#xff0c;发布了全新的USB PD3.1规范&#xff0c;如同凤凰涅槃&#xff0c;将快充功率上限从100 W扶摇直上至240 W。这一壮举不仅让USB PD的影响力渗透到手机、笔记本电脑的领域&#xff0c;更是将其触角延伸至了更为广阔的天地&a…

回顾2023,立2024flag

文章目录 回顾2023与CSDN相识专栏整理数据回顾 立2024flag 回顾2023 在过去的一年里&#xff0c;前端技术不断演进和创新。新技术、新框架层出不穷&#xff0c;给前端工程师提供了更多选择和挑战。2023年已经成为过去&#xff0c;回首这一年&#xff0c;我们也经历了许多挑战和…

leetcode - 2751. Robot Collisions

Description There are n 1-indexed robots, each having a position on a line, health, and movement direction. You are given 0-indexed integer arrays positions, healths, and a string directions (directions[i] is either ‘L’ for left or ‘R’ for right). Al…

python_数据可视化_pandas_导入excel数据

目录 1.1导入库 1.2读取excel文件 1.3读取excel&#xff0c;指定sheet2工作表 1.4指定行索引 1.5指定列索引 1.6指定导入列 案例速览&#xff1a; 1.1导入库 import pandas as pd 1.2读取excel文件 pd.read_excel(文件路径) data pd.read_excel(D:/desktop/TestExcel…

c语言进阶指南(17)——动态内存管理

欢迎来到博主的专栏——c语言进阶指南 博主id已更新&#xff1a; 文章目录 动态内存分配malloc动态内存的释放free其他的动态内存管理函数callocrealloc使用realloc函数调整动态内存空间使用realloc函数分配动态内存空间 动态内存分配 动态内存分配是内存分配的一种方法&#…

Python教程39:使用turtle画今天日期

---------------turtle源码集合--------------- Python教程36&#xff1a;海龟画图turtle写春联 Python源码35&#xff1a;海龟画图turtle画中国结 Python源码31&#xff1a;海龟画图turtle画七道彩虹 Python源码30&#xff1a;海龟画图turtle画紫色的小熊 Python源码29&a…

向量检索-用最简单的语言

看之前首先要懂两个基本条件&#xff1a; 1. 什么是向量 2. 会使用向量的检索 3. 知道至少一种向量的索引 这里我们拿比较的流行的HNSW算法来进行分析&#xff1a; 最直接的做法是根据向量在给定数据集中采用KNN来找到K个最近的向量。但在实际应用中&#xff0c;待检索的数据往…

14.kubernetes部署Dashboard

Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment,Job,D…