gdzwfw某省公共资源交易平台逆向学习

声明:本文中网站仅为学习技术使用,请勿暴力爬取数据。

学习地址:aHR0cHM6Ly95Z3AuZ2R6d2Z3Lmdvdi5jbi8jLzQ0L2p5Z2c=

此网站采用请求头反爬,难点是请求头中几个参数是如何生成的(别问为什么知道是请求头,一个一个试的。。。)

搜索这几个请求头可以发现是找不到的,由此可以判断JS是经过混淆的,或者参数名是在JS运行中生成的。

 

最难的就是如何定位到这几个参数是在JS的哪个位置产生的了,这比较依赖经验,全靠大胆猜测,小心求证。

首先要进入JS里,常用的方法有XHR断点、从启动器进入、或者HOOK等等。hook headers赋值的地方,可能会离这几个参数生成的位置比较近:

(function() {var org = window.XMLHttpRequest.prototype.setRequestHeader;window.XMLHttpRequest.prototype.setRequestHeader = function (key, value) {if (key == 'X-Dgi-Req-Signature') {console.log('Hook->', key, ':', value);debugger;}return org.apply(this, arguments);};
})();

hook住之后你就跟着堆栈挨个找吧,我找的是头!皮!发!麻!,然后是一!无!所!获!,看谁都不像要找的代码。。。就很难受。。。

换个思路:X-Dgi-Req-Timestamp这个参数值是不是个时间戳?Date.now()?

对。。。这块代码就是要找的,其中的三个参数:

 

另一个参数在下面的代码里:

然后你就继续耐着性子扣JS吧,一扣一个不吱声。

扣完这步得到的结果是这样的:

看着是成功了,又好像没成功。

debug的时候你会发现,X-Dgi-Req-Signature确实是这样的

 但是这个明显不是请求头里能用的!所以真相只有一个,那就是还有一处代码是对这个值进行编码的!

然后再顺着堆栈过一遍,你会发现这行代码,很明显就是它了:

后面的就不用说了,把这个也扣出来。 结果是这样的:

然后拿请求头去试下接口:

 

 能拿到数据,说明获取到的请求头没毛病。

respect!

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

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

相关文章

java进阶-jvm精讲及实战

深入了解jvm及实战 1.引言2.jvm概念理解1.1什么是jvm1.2 jvm功能1.3 jvm规范及主流版本1.4 jre jdk jvm的区别和联系1.5 jvm组成 2.jvm-字节码文件class2.1 java和class无关性2.2 字节码应用场景2.4 字节码文件打开方式2.3 字节码文件组成2.3.1 一般信息2.3.2 常量池2.3.3 方法…

Flutter底部导航栏插件persistent_bottom_nav_bar的使用

flutter 框架中的 persistent_bottom_nav_bar 插件可以让我们快速实现页面底部导航栏(也就是 bottomNavigationBar )的布局且能拥有多样的切换效果(包括但不限于:动画切换效果、中间凸起按钮效果等) 插件网址&#xf…

【MySQL·8.0·源码】subquery 子查询处理分析(一)

引言 在 SQL 中,子查询属于 Nested Query 的一种形式,根据 Kim 的分类[1],Nested Query 即嵌套查询是一种 SQL-like 形式的查询语句嵌套在另一 SQL 中,SQL-like 的嵌套子句可以出现在 SELECT、FROM 和 WHERE 子句的任意位置。 在…

GBASE南大通用分享如何更新row类型表达式

从 SPL 例程内,您可使用 ROW 变量来更新 row 类型表达式。下图展示当员工的基本薪 酬按某一百分比增长时,用于更新 emp_info 表的 SPL 过程 emp_raise。 用于更新 emp_info 表的 SPL 过程。 SELECT 语句将来自 emp_info 表的 salary 列的行选择到 ROW …

Java项目:125SpringBoot教室预约管理系统

博主主页:Java旅途 简介:分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 教室预约管理系统使用SpringBootMybatis进行开发,系统整体分为前台和后台,后台主要对教室,用户等信息进行管理&#xf…

SpringBoot+MyBatis使用pagehelper分页插件及其注意事项(含解决分页不生效问题)

1 前言 近期在做项目的时候,遇到了一个问题:在使用MyBatis的分页插件(pagehelper)时,发现其分页不生效,找了许多方法才得以解决,故写下这篇文章记录一下,帮助跟我遇到同样问题的同学…

无人机航迹规划(六):七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划(提供MATLAB代码)

一、七种算法(DBO、LO、SWO、COA、LSO、KOA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

阿赵UE学习笔记——解决UE资源不能正常显示缩略图的问题

阿赵UE学习笔记目录 大家好,我是阿赵。   这里分享一个虚幻引擎使用小技巧。在使用虚幻引擎的过程中,经常会遇到有些资源在重新打开项目的时候,会看不到缩略图,而是显示默认资源的图标: 这个时候,第一种…

java web mvc-06-play framework intro

拓展阅读 Spring Web MVC-00-重学 mvc mvc-01-Model-View-Controller 概览 web mvc-03-JFinal web mvc-04-Apache Wicket web mvc-05-JSF JavaServer Faces web mvc-06-play framework intro web mvc-07-Vaadin web mvc-08-Grails 开源 The jdbc pool for java.(java …

每日一题——LeetCode1331.数组序号转换

方法一 排序哈希Map 首先用一个数组保存排序完的原数组,然后用一个哈希表保存各元素的序号,最后将原属组的元素替换为序号后返回。 var arrayRankTransform function(arr) {let set new Set(arr)let sortArrArray.from(set).sort((a,b)>a-b)let ma…

对Vue有状态组件和无状态组件的理解及使用场景

目录 一、Vue框架 二、Vue的有状态组件 三、Vue的无状态组件 四、有状态组件和无状态组件的区别 一、Vue框架 Vue是一款流行的JavaScript框架,用于构建用户界面。它被设计为易学易用的,同时也具备强大的功能和灵活性。 Vue具有以下特点&#xff1a…

【AI视野·今日NLP 自然语言处理论文速览 第七十五期】Thu, 11 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 11 Jan 2024 Totally 36 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Leveraging Print Debugging to Improve Code Generation in Large Language Models Authors Xueyu Hu, Kun K…

03 SpringBoot实战 -微头条之首页门户模块(跳转某页面自动展示所有信息+根据hid查询文章全文并用乐观锁修改阅读量)

1.1 自动展示所有信息 需求描述: 进入新闻首页portal/findAllType, 自动返回所有栏目名称和id 接口描述 url地址:portal/findAllTypes 请求方式:get 请求参数:无 响应数据: 成功 {"code":"200","mes…

Linux中Iptables使用

概念:网络中的防火墙,是一种将内部网络和外部网络分开的方法,是一种隔离技术 作用: 防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包作出判断,最大限度地阻止网络中的黑客破坏企业网络&…

MYSQL数据库基本操作-DQL-基本查询

一.概念 数据库管理系统一个重要功能就是数据查询。数据查询不应是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。 MySQL提供了功能强大,灵活的语句来实现这些操作。 MySQL数据库使用select语句来查询数据…

【学术论文写作】 鲁棒性实验写作的行文逻辑

文章目录 一、声明二、行文思路三、示例范文一范文二 一、声明 自己总结的,有问题望指正! 二、行文思路 为什么要做鲁棒性测试怎么做实验结论对结果的解释 三、示例 PPT 范文一 2022, TIM, “A Robust and Reliable Point Cloud Recognition Netw…

GPT-5不叫GPT-5?下一代模型会有哪些新功能?

OpenAI首席执行官奥特曼在上周三达沃斯论坛接受媒体采访时表示,他现在的首要任务就是推出下一代大模型,这款模型不一定会命名GPT-5。虽然GPT-5的商标早已经注册。 如果GPT-4目前解决了人类任务的10%,GPT-5应该是15%或者20%。 OpenAI从去年开…

【JavaEE进阶】 MyBatis使用XML实现增删改查

文章目录 🎍前言🍀配置连接字符串和MyBatis🍃写持久层代码🚩添加mapper接⼝🚩添加UserInfoXMLMapper.xml🚩单元测试 🌴增(Insert)🚩返回⾃增id 🎋删(Delete)&…

【Vue3】组件通信

Vue3组件通信和Vue2的区别: 移出事件总线,使用mitt代替。vuex换成了pinia。把.sync优化到了v-model里面了。把$listeners所有的东西,合并到$attrs中了。$children被砍掉了。 1. props 若 父传子:属性值是非函数。若 子传父&…

泡泡玛特旗下IP亮相2024米兰时装周 LABUBU等化身时尚观察员​

2024年1月14日,在意大利米兰时装周上,泡泡玛特旗下IP THE MONSTERS成员LABUBU、ZIMOMO惊艳亮相PRONOUNCE珀琅汐2024秋冬大秀现场,作为时尚观察员的LABUBU和ZIMOMO以其独特的潮玩形象打动了顶级时尚圈。 据了解,泡泡玛特和PRONOUNC…