某顺cookie逆向

目标网站:aHR0cHM6Ly9xLjEwanFrYS5jb20uY24v

这个网站是对cookie进行反爬虫的,可以看到cookie中有一个加密参数v
在这里插入图片描述
二、分析参数
可以使用hook方法,来hook住cookie中v生成的位置,可以直接在控制台中输入hook函数

(function () {'use strict';var cookie_cache = document.cookie;Object.defineProperty(document, 'cookie', {get: function () {return cookie_cache;},set: function (val) {console.log('Setting cookie', val);// 填写cookie名if (val.indexOf('v') != -1) {debugger;}var cookie = val.split(";")[0];var ncookie = cookie.split("=");var flag = false;var cache = cookie_cache.split("; ");cache = cache.map(function (a) {if (a.split("=")[0] === ncookie[0]) {flag = true;return cookie;}return a;})cookie_cache = cache.join("; ");if (!flag) {cookie_cache += cookie + "; ";}return cookie_cache;}});
})();

当js执行到生成v的时候,就会被hook到,然后就能根据堆栈来寻找v生成的位置了
在这里插入图片描述
在这里插入图片描述

进入rt.updata()方法
在这里插入图片描述
三、补环境:
我们可以把整个JS代码复制下来,放到编译器中执行
在这里插入图片描述
第一次执行:在编译器中执行,报了一个document未定义的错误
在这里插入图片描述
我们就需要补document了,可以这样补 document = {}
在这里插入图片描述

这个我们可以用代理,让它自动吐环境

function get_enviroment(proxy_array) {for(var i=0; i<proxy_array.length; i++){handler = '{\n' +'    get: function(target, property, receiver) {\n' +'        console.log("方法:", "get  ", "对象:", ' +'"' + proxy_array[i] + '" ,' +'"  属性:", property, ' +'"  属性类型:", ' + 'typeof property, ' +// '"  属性值:", ' + 'target[property], ' +'"  属性值类型:", typeof target[property]);\n' +'        return target[property];\n' +'    },\n' +'    set: function(target, property, value, receiver) {\n' +'        console.log("方法:", "set  ", "对象:", ' +'"' + proxy_array[i] + '" ,' +'"  属性:", property, ' +'"  属性类型:", ' + 'typeof property, ' +// '"  属性值:", ' + 'target[property], ' +'"  属性值类型:", typeof target[property]);\n' +'        return Reflect.set(...arguments);\n' +'    }\n' +'}'eval('try{\n' + proxy_array[i] + ';\n'+ proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}catch (e) {\n' + proxy_array[i] + '={};\n'+ proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}')}
}
proxy_array = ['window','document','navigator','location']get_enviroment(proxy_array)

四、完整环境

document = {}
window = global
location = {}
head = {}
div = {}
addBehavior = {}
getElementsByTagName = function (val) {if(val === 'head'){return [head]}
}
createElement = function(val){if(val === 'div'){return div}
}
null_function = function(){}
document.getElementsByTagName = getElementsByTagName
document.createElement = createElement
document.attachEvent = null_function
document.documentElement = addBehavior
Plugin = {}
Plugin1 = {}
Plugin2 = {}
Plugin3 = {}
Plugin4 = {}
navigator = {plugins: [Plugin, Plugin1, Plugin2, Plugin3, Plugin4]
}
navigator.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'
navigator.javaEnabled = null_function
location.href = 'http://q.10jqka.com.cn/'
location.protocol = 'http:'
location.hostname = 'q.10jqka.com.cn'
location.host = 'q.10jqka.com.cn'

参考:https://zhuanlan.zhihu.com/p/628987841

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

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

相关文章

【GitHub项目推荐--提取文字】【转载】

提取视频中的字幕 这个开源项目是提取视频中字幕的开源项目&#xff0c;提取视频中的关键帧&#xff0c;检测视频帧中文本的所在位置&#xff0c;识别视频帧中文本的内容。 不知道大家有没有做笔记的习惯&#xff0c;这个开源项目就很方便的把你一个视频中的字幕提取出来&…

学习推荐!!HTML5+CSS3从入门到精通

获取方式&#xff1a; 《HTML 5 CSS3从入门到精通》 《HTML5CSS3从入门到精通目录》 第1章 Web开发新时代 第2章 从HTML、XHTML到HTML5 第3章 创建HTML5文档 第4章 实战HTML5表单 第5章 实战HTML5画布 第6章 HTML5音频与视频 第7章 Web存储 第8章 离线应用 第9章 Workers多线…

操作系统设计大实验

1、设自行车生产线上有一只箱子&#xff0c;其中有N个位置&#xff08;N≥3&#xff09;&#xff0c;每个位置可存放一个车架或一个车轮&#xff0c;又设有三名工人&#xff0c;其活动分别为&#xff1a; 用信号量PV操作编程实现三个工人的合作&#xff0c;不能出现死锁。要求…

ZigBee学习——浅析协议栈

✨记录学习过程 文章目录 一、初识OSAL1.1 Z-Stack和Zigbee的OSAL是什么关系&#xff1f;1.2 OSAL可以解决Z-stack在不同厂商的芯片上的使用吗&#xff1f; 二、协议栈运行机制2.1 初始化涉及内容2.2 初始化过程 一、初识OSAL OSAL&#xff0c;全称是操作系统抽象层&#xff0…

【Vue3】计算属性computed和监听属性watch

目录 一、Vue3和Vue2的区别 二、计算属性computed 三、监听属性watch 四、计算属性和监听属性的区别 一、Vue3和Vue2的区别 Vue3和Vue2有以下几个主要区别&#xff1a; 响应式系统的改进&#xff1a;Vue3采用了Proxy作为响应式系统的核心&#xff0c;相比Vue2的Object.def…

vue打包后与本地测试样式不同问题,element-ui样式打包部署前后样式不同。

个别文件的样式中<style>未加scope。 查找到一些文件中修改了对应页面的elementUI的样式&#xff0c;但未加scope 给<style>加上scope&#xff0c;就好了。

河北移动与中兴通讯现已规模部署5G AAU自动启停功能

河北移动为积极响应国家战略&#xff0c;践行中国移动双碳行动计划&#xff0c;致力联合产业合作伙伴多次探索能耗更低的节电新模式。最近&#xff0c;河北移动就与中兴通讯完成了5G AAU自动启停功能的研发以及规模商用部署&#xff0c;成功打造出5G网络绿色节能低碳运营新范式…

Tween.js 使用文档 --- Three.js

Tween.js官网文档&#xff1a;tween.js user guide | tween.js (tweenjs.github.io) Tween.js 基本使用 1. 引入Tween.js import TWEEN from "./tween.js-master/dist/tween.esm.js" 2. 定义基本Tween动画 目的&#xff1a;将model模型的位置&#xff0c;从原来的(0…

杰卡德距离(Jaccard Distance)

杰卡德距离&#xff08;Jaccard Distance&#xff09;&#xff0c;是用于衡量两个集合差异性的一种指标&#xff0c;它是杰卡德相似系数的补集&#xff0c;可以用来区分集合&#xff08;如知识图谱&#xff09;。 杰卡德相似系数 杰卡德相似系数&#xff08;Jaccard similari…

橘子学Mybatis08之Mybatis关于一级缓存的使用和适配器设计模式

前面我们说了mybatis的缓存设计体系&#xff0c;这里我们来正式看一下这玩意到底是咋个用法。 首先我们是知道的&#xff0c;Mybatis中存在两级缓存。分别是一级缓存(会话级)&#xff0c;和二级缓存(全局级)。 下面我们就来看看这两级缓存。 一、准备工作 1、准备数据库 在此之…

深度学习在物理层信号处理中的应用研究

随着移动流量呈现的爆发式增长、高可靠性和低时延的通信场景给当前网络带来了更大的复杂性和计算挑战。据IBM报道&#xff0c;移动数据量到2020年将超过40万亿Gbits&#xff0c;比2009年增加44倍&#xff0c;连接总设备量将达到500亿。为了满足这一需求&#xff0c;需要新的通信…

云卷云舒:PostgreSQL的事儿你听说了吗?

最近&#xff0c;PostgreSQL公布了全球贡献者名单。 以上是全球贡献者主要成员&#xff0c;可以看出都是外国人&#xff0c;除了一名台湾省贡献者外&#xff0c;几乎再看不到中国贡献者的身影。 那么偌大的中国&#xff0c;为什么在PostgreSQL的全球贡献者名单里面就看不到人呢…