【瑞数3代】药监评审中心逆向分析 | 后缀MmEwMD参数

1.目标

目标网址:https://www.cde.org.cn/main/news/listpage/545cf855a50574699b46b26bcb165f32

在这里插入图片描述

import requestscookies = {'FSSBBIl1UgzbN7N80S': '8sYeMWaC_IHoNl8Ckfx2y9MLiueMCkPr2V3MIoZkrMPUfzMMaXKzAoxpNPvyw4lt','Path': '/','FSSBBIl1UgzbN7N80T': '3js3ygV.St6BvO20CqJJvultwYwAmukdqIPpIgxLzMR6XftO8Uf1_XHz7gFtfZ3BqudXefnJK3q_RtHDmNYbM5OTMaSzOB9G5MtH1Bc2WHs4usnskV5NOGfHsvOwfKPS8R2QUM5WODmFdV8gu6IBXG90EMRy_hQ3HnQoSoGBYWu9DsttOG5S9l8Nf5CL.RzeaOfm7ga7FJtykCM3HdK68gqw.zL6zxBrkLAeRWPaxMeiFu2dYtaJ_wUUEjkYqo.5bfh_ooEdlmgyM5_QF8P60LrUVUJbl_Oc9WDcexuwAo_qm3q',
}headers = {'Accept': 'application/json, text/javascript, */*; q=0.01','Accept-Language': 'zh-CN,zh;q=0.9','Cache-Control': 'no-cache','Connection': 'keep-alive','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Origin': 'https://www.cde.org.cn','Pragma': 'no-cache','Referer': 'https://www.cde.org.cn/main/news/listpage/545cf855a50574699b46b26bcb165f32','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-origin','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36','X-Requested-With': 'XMLHttpRequest','sec-ch-ua': '"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="99"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"',# 'Cookie': 'FSSBBIl1UgzbN7N80S=8sYeMWaC_IHoNl8Ckfx2y9MLiueMCkPr2V3MIoZkrMPUfzMMaXKzAoxpNPvyw4lt; Path=/; FSSBBIl1UgzbN7N80T=3js3ygV.St6BvO20CqJJvultwYwAmukdqIPpIgxLzMR6XftO8Uf1_XHz7gFtfZ3BqudXefnJK3q_RtHDmNYbM5OTMaSzOB9G5MtH1Bc2WHs4usnskV5NOGfHsvOwfKPS8R2QUM5WODmFdV8gu6IBXG90EMRy_hQ3HnQoSoGBYWu9DsttOG5S9l8Nf5CL.RzeaOfm7ga7FJtykCM3HdK68gqw.zL6zxBrkLAeRWPaxMeiFu2dYtaJ_wUUEjkYqo.5bfh_ooEdlmgyM5_QF8P60LrUVUJbl_Oc9WDcexuwAo_qm3q',
}params = {'MmEwMD': '30VyrbstxVaiIePYi8t7Izk.2hFSezl8gr2avbixYm8KKdJcbxbucaEWVbw.RPIigzgHmdT7XDoMfVEve61oOG9VOVQUZd0kNadlppqaqwBSXsBuBw3ObE0lgDYyLDG0OdRoZT.9bUbEdhd9songV6XL_9pNli_1DIuG3lVP78knP2fIqPifkeWabjo.WJ3Zj3lyaE86hPYM0ICYhycRF9UAjUPrvwo0bQMevkGfjktatXp4g1A8yYiai.NjkT4pzHAqyfoBqiI.Jj8KPLdEM4FIucscxGD3UUbcsaR6qohf8galqgA0Hv3.VPSABnakeqDO7c2eHB3kjl_xxkoJeCKzcnaULXCd9pdLAp0FKRzEzqy',
}data = {'pageNum': '1','pageSize': '10','searchTitle': '','classId': '545cf855a50574699b46b26bcb165f32',
}
url = 'https://www.cde.org.cn/main/news/getList'response = requests.post(url, params=params, cookies=cookies, headers=headers, data=data)
  • 目标POST请求https://www.cde.org.cn/main/news/getList
  • 需要解决
    • FSSBBIl1UgzbN7N80T:瑞数3代cookie
    • MmEwMD加密参数

2.逆向分析

2.1 两套js

https://www.cde.org.cn/4QbVtADbnLVIc/c.FxJzG50F.6152bb9.js?D9PVtGL=6152bb
https://www.cde.org.cn/4QbVtADbnLVIc/d.FxJzG50F.6152bb9.js?D9PVtGL=6152bb

在这里插入图片描述

唯一的区别就是变了一个字母,暂且叫它ctsdts,都是固定不变的,但是他们是有区别的,在于cts可以生成cookie,dts可以生成MmEwMD参数
直接把两套js代码都下载下来,然后就可以直接导入使用
在这里插入图片描述

2.2 Cookie分析

第一次请求页面202

在这里插入图片描述
在这里插入图片描述
可以看到是用的cts

第一次GET请求

https://www.cde.org.cn/main/news/listpage/545cf855a50574699b46b26bcb165f32

返回202状态码,返回contentfunction函数代码,返回两个cookie
FSSBBIl1UgzbN7N80TFSSBBIl1UgzbN7N80S
但是返回的这个FSSBBIl1UgzbN7N80T没什么用

因为第二次请求携带FSSBBIl1UgzbN7N80T是瑞数代码生成的,不是返回的这个

ctscontentfunction函数三者配套使用可以生成FSSBBIl1UgzbN7N80T

content分析

在这里插入图片描述

字符串中使用了不合法的 Unicode 转义序列就会
报错"Uncaught SyntaxError: Invalid Unicode escape sequence"
还有HTML 实体编码(如 &lt;&gt; 需要转成 <>)

第二次请求页面200

在这里插入图片描述
在这里插入图片描述
需要携带第一次请求返回FSSBBIl1UgzbN7N80S和瑞数代码生成的FSSBBIl1UgzbN7N80T

在这里插入图片描述
第二次GET请求

https://www.cde.org.cn/main/news/listpage/545cf855a50574699b46b26bcb165f32

返回200状态码,然后又会返回一个新的contentfunction函数代码,并且是用的dts

dtscontentfunction函数三者配套使用可以生成MmEwMD

2.3 MmEwMD参数

在这里插入图片描述
XHR断点MmEwMD
可以看到是 XMLHttpRequest.open方法初始化请求。它不会发送请求,只是设置请求的基本参数
瑞数正是重写了 XMLHttpRequest.open方法,所以会生成MmEwMD参数
在这里插入图片描述
进入open方法内部
在这里插入图片描述

  • 生成的FSSBBIl1UgzbN7N80T不对,请二次请求页面仍然会是202
  • 生成的MmEwMD不对,就获取不到列表页的数据
  • 正常情况下返回
    在这里插入图片描述

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

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

相关文章

【漫话机器学习系列】274.基尼指数(Gini Index)

决策树中的基尼指数&#xff08;Gini Index&#xff09;详解 —— 从公式理解到实际应用 在构建决策树模型时&#xff0c;一个核心问题是&#xff1a;如何选择最优的特征来进行节点划分&#xff1f; 这就涉及到了“划分准则”的问题。常见的准则有信息增益、信息增益率以及本文…

R语言学习--Day07--T分布与T检验

昨天我们介绍了R中用于对数据进行分类的聚类分析的方法&#xff0c;接下来我们来看T分布。 T分布 T分布适用于帮我们估计整组数据&#xff08;较小的数据量&#xff0c;一般小于30&#xff09;的真实值在哪一个区间&#xff0c;具体是计算置信区间&#xff08;一般为95%&#…

数据结构与算法-线性表-双向链表(Double Linked List)

1 线性表 1.4 双向链表&#xff08;Double Linked List&#xff09; 双向链表的结点中有两个指针域&#xff0c;一个指向直接后继&#xff0c;另一个指向直接前驱&#xff0c;主要是为了解决前向查找的问题。 双向链表结构&#xff1a; 书籍和视频教程都只讲解了插入和删除的…

甘特图实例 dhtmlxGantt.js

本文介绍了如何使用dhtmlxGantt库创建一个基础的甘特图示例&#xff0c;并对其进行汉化和自定义配置。首先&#xff0c;通过引入dhtmlxgantt.css和dhtmlxgantt.js文件初始化甘特图。接着&#xff0c;通过设置gantt.i18n.setLocale("cn")实现核心文本的汉化&#xff0…

C++23 新增扁平化关联容器详解

文章目录 一、引言已有关联容器回顾新容器的引入原因 二、std::flat_set定义与特性代码示例适用场景 三、std::flat_multiset定义与特性代码示例适用场景 四、std::flat_map定义与特性代码示例适用场景 五、std::flat_multimap定义与特性代码示例适用场景 六、与其他容器的比较…

使用zap,对web应用/API接口 做安全检测

https://www.zaproxy.org/getting-started/ 检测方法 docker pull ghcr.io/zaproxy/zaproxy:stable# 执行baseline测试 docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \ -t https://baseline.yeshen.org# 执行api测试 docker run -t ghcr.io/zaproxy/zaproxy…

Qt—模态与非模态对话框

Qt—模态与非模态对话框 核心概念 ​模态对话框​​&#xff1a;强制用户优先处理当前窗口&#xff0c;阻塞指定范围的用户交互。​非模态对话框​​&#xff1a;允许用户自由切换窗口&#xff0c;无交互限制。 一、模态对话框类型与行为 1. 应用级模态&#xff08;Applica…

Axure高保真CRM客户关系管理系统原型

一套出色的CRM&#xff08;客户关系管理&#xff09;系统&#xff0c;无疑是企业管理者掌控客户动态、提升销售业绩的得力助手。今天&#xff0c;就为大家介绍一款精心打造的Axure高保真CRM客户关系管理系统原型模板&#xff0c;助你轻松开启高效客户管理之旅。 这款CRM原型模…

【羊圈——状压 + DP / 记忆化搜索DP】

题目 一般DP代码&#xff08;注意&#xff0c;这里只能向外推(起始状态是f(1,0)&#xff0c;不能向内推&#xff08;不然会导致之前的羊圈被割裂&#xff09;&#xff09; #include <bits/stdc.h> using namespace std;const int MAX_N 210; const int MAX_M 16;int n…

讲解Mysql InnoDB的MVCC

1. 定义 MVCC是多版本并发控制&#xff08;Multi - Version Concurrency Control&#xff09;的缩写。它是InnoDB存储引擎实现高并发控制的一种机制。在数据库系统中&#xff0c;多个事务可能会同时对数据进行读写操作&#xff0c;而MVCC通过为数据行保存多个版本来解决并发事务…

ZeroMQ Sockets介绍及应用示例

1. 概念解释 ZeroMQ Sockets提供了一种类标准套接字&#xff08;socket-like&#xff09;的 API&#xff0c;是消息导向的通信机制&#xff0c;基于 TCP/UDP 等传输层协议&#xff0c;但封装了底层细节&#xff08;如连接管理、消息路由、缓冲区等&#xff09;&#xff0c;提供…

语音合成之十五 语音合成(TTS)分句生成拼接时的响度一致性问题:现状、成因与对策

语音合成&#xff08;TTS&#xff09;分句生成拼接时的响度一致性问题&#xff1a;现状、成因与对策 引言&#xff1a;分段式文本转语音中的响度一致性挑战业界对响度差异问题的认知拼接语音片段中响度变化的根本原因分段拼接的固有挑战各片段预测韵律特征的差异文本特征和模型…

Android中Binder驱动作用?

Binder驱动的作用与核心功能 Binder驱动是Android系统中实现进程间通信&#xff08;IPC&#xff09;的核心底层组件&#xff0c;它工作于Linux内核层&#xff0c;负责管理跨进程通信的建立、数据传输、资源同步等关键任务。以下是其核心作用及实现细节&#xff1a; 1. ​​进程…

网络学习-TCP协议(七)

一、TCP协议 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。 1、三次握手 客户端&#xff1a; 1、先发起连接&#xff0c;发送SYN置1&#xff0c;seqnum12345(随机值)----半连接…

【Python 基础与实战】从基础语法到项目应用的全流程解析

&#xff08;1&#xff09;列表和元组的区别是什么?如何从列表创建元组?如何从元组创建列表? 列表和元组的区别&#xff1a; 可变性&#xff1a;列表是可变的&#xff0c;即可以对列表进行元素的增、删、改操作。例如&#xff0c;可以使用append()方法添加元素&#xff0c;r…

Docker部署Zookeeper集群

简介 ZooKeeper 是一个开源的分布式协调服务&#xff0c;由 Apache 软件基金会开发和维护。它主要用于管理和协调分布式系统中的多个节点&#xff0c;以解决分布式环境下的常见问题&#xff0c;如配置管理、服务发现、分布式锁等。ZooKeeper 提供了一种可靠的机制&#xff0c;…

【学习笔记】Sophus (Python) 使用文档

以下是一份针对 Sophus 库的 Python 使用文档&#xff0c;涵盖基础概念、安装方法、核心功能及代码示例。内容围绕 SO3&#xff08;3D旋转群&#xff09;和 SE3&#xff08;3D刚体变换群&#xff09;展开&#xff0c;适合机器人学、SLAM、三维几何等领域。 Sophus (Python) 使用…

计算机图形学:(三)MVP变换扩展

Three.js WebGL允许把JavaScript和OpenGL 结合在一起运用&#xff0c;但使用WebGL原生的API来写3D程序非常的复杂&#xff0c;同时需要相对较多的数学知识&#xff0c;对于前端开发者来说学习成本非常高。 Three.js是基于webGL的封装的一个易于使用且轻量级的3D库&#xff0c;T…

MySQL数据库操作合集

一、SQL通用语法 ①SQL语句可以单行或多行书写&#xff0c;以分号结尾。 ②SQL语句可以使用空格/缩进来增强语句可读性。 ③MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写。 ④注释&#xff1a; 单行注释&#xff1a; -- 注释内容 或 # 注释内容&#…

传统工程项目管理与业财一体化管理的区别?

在工程项目管理领域&#xff0c;传统管理模式与新兴的业财一体化管理模式正在形成鲜明对比。随着数字化转型的加速&#xff0c;工程行业对高效、透明、协同的管理需求日益迫切。传统工程项目管理依赖人工操作、分散系统和分模块管理&#xff0c;难以应对复杂项目的全生命周期需…