Hook技术 - 某站cookie解析

news2024/11/25 23:00:48

本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,若有侵权请联系我删除!

目标网站:aHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tLw==

目标接口:Cmh0dHBzOi8vYXBpLmJpbGliaWxpLmNvbS94L3dlYi1pbnRlcmZhY2Uvd2JpL3NlYXJjaC90eXBlP19fcmVmcmVzaF9fPXRydWU=

一、Hook介绍:

1、通过浏览器插件的形式插入我们自己的代码,改变原来的代码或者原来代码的执行流程;

2、Hook到特定的值,打印出线索,还可以打下断点跟栈调试

三、作用

1、Hook 对象中的属性(get set 方法)

2、Hook Header中的参数

3、Hook Cookie中的值 (SetCookie方法)

(function() {
        var cookieVal = '';
        Object.defineProperty(document, 'cookie', {
            set: function(val) {
                if (val.indexOf('_uuid') != -1) {
                    debugger ;
                }
                console.log('Hook捕获到cookie设置->', val);
                cookieVal= val;
                return val;
            },
            get: function() {
                return cookieVal;
            },
        });
    }
    )();

4、Hook Url中的参数

5、Hook 普通方法,例:

(function() { 
    var stringify = JSON.stringify; 
    JSON.stringify = function(params) { 
        console.log("Hook JSON.stringify ——> ", params); 
        debugger; 
        return stringify(params); 
     } 
})();

二、实现:推荐使用Fiddler + 编程猫的插件

1、安装Fiddler

2、安装编程猫插件,将插件解压,复制到Filddler的 Scripts目录下

3、重新打开Fiddler,看到右上角有编程猫专用插件的标志,说明安装成功 

三、案例:访问文章最上方目标网站,找到搜索接口,我们来解析该接口携带的Cookie信息(该接口其他加密信息请查看我上一篇文章)

1、抓包查看该接口的Cookie,有五个参数是加密的,buvid3, buvid4,  _uuid,buvid_fp,b_lsid。

经过我调试发现 buvid3, buvid4是通过 x/frontend/finger/spi 接口返回的,我们重点来看看剩下3个参数的获取

 2、uuid

(1)、将上面Hook Cookie的代码复制到 注入Hook下方。

(2)、将目标地址填入,勾选开启,刷新网站页面(重要)

(3)、调试分析: 刷新网站后,发现断点直接就断下了,_uuid的值也被我们Hook到,我们跟栈继续分析

 

 很快定位到可疑位置(是不是比搜索关键词快的多!)。

 关注这行代码,跟进l.a方法。抠出来,把缺的方法都一步步补全(就是下方那几个方法),直接执行 n方法得到uuid

this._uuid = Object(l.a)()

 (4)、完整uuid代码:

var n = function () {
    var e = a(8)
        , t = a(4)
        , r = a(4)
        , n = a(4)
        , o = a(12)
        , i = (new Date).getTime();
    return e + "-" + t + "-" + r + "-" + n + "-" + o + s((i % 1e5).toString(), 5) + "infoc"
}
a = function (e) {
    for (var t = "", r = 0; r < e; r++)
        t += o(16 * Math.random());
    return s(t, e)
}
s = function (e, t) {
    var r = "";
    if (e.length < t)
        for (var n = 0; n < t - e.length; n++)
            r += "0";
    return r + e
}
o = function (e) {
    return Math.ceil(e).toString(16).toUpperCase()
}

let res = n()
console.log("res: " + res)

3、buvid_fp,b_lsid这两个参数的调试方法也是这样,需要把 hook代码中的_uuid替换掉,刷新页面就能断下了,跟栈调试的流程是一样的(如果需要这两个参数的算法可以私聊我获取,这边就不直接放出来了)

完结 !!!

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

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

相关文章

小程序逆向动态调试及修复过程

微信小程序逆向 : https://codeooo.blog.csdn.net/article/details/120219900 一 &#xff1a;_typeof3 is not a function 小程序解包之后&#xff0c;在微信开发者工具当中点开调试器&#xff0c;选择Console选项卡&#xff0c;发现左侧的预览界面是空白的&#xff0c;虽然…

leetcode 40. 组合总和 II

2023.7.19 此题为 组合总和 的升级版。本题的特殊之处在于 给定的candidates数组只一个无序且包含重复元素的数组&#xff0c;并且最终的解集不能包含重复的组合。 所以本题的关键在于去重。那么&#xff0c;此类题的去重分为两种&#xff0c;一种是解集内部去重&#xff0c;灵…

设计模式-享元模式在Java中的使用示例-围棋软件

场景 享元模式 简介 当一个软件系统在运行时产生的对象数量太多&#xff0c;将导致运行代价过高&#xff0c;带来系统性能下降等问题。 例如在一个文本字符串中存在很多重复的字符&#xff0c;如果每一个字符都用一个单独的对象来表示&#xff0c;将会占用 较多的内存空间…

【网络】网络编程套接字

目录 一、预备知识 1、网络通信理解 2、源IP地址和目的IP地址 3、端口号 二、网络字节序 三、socket编程接口 1、socket常见API 2、sockaddr结构 3、sockaddr结构体 3.1、sockaddr结构体 3.2、sockaddr_in结构体 四、简单的UDP网络程序 1、创建套接字接口 2、绑定…

C# OpenCvSharp 直方图均衡化 图像去雾

直方图 直方图均衡化 自适应的直方图均衡化 全局直方图均衡化 局部直方图均衡化 对比度调整 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; us…

TRT3-trt-basic - 5.1 封装插件

之前TRTbasic4是新增插件&#xff0c;这次我们看看不新增插件&#xff0c;仅凭封装可不可以达到一样的功能 首先可以看到这次的g.op不再是MYSELU了&#xff0c;而是plugin&#xff0c;那为什么.cu还能识别出来呢&#xff1f; 是因为在这里做了一个通用的plugin DEFINE_BUILTIN…

常用API学习03(Java)

String char charAt(int index) 返回char指定索引处的值 char[] toCharArray() 将此字符串转换为新的字符数组 int compareTo(String anotherString) 按字典顺序比较两个字符串 boolean contains(CharSequence s) 当且仅当此字符串包含指定的char值序列才返…

osg osgQt模块 基于 QGLWidget 源码分析

osgQt基于QGLWidget实现了在Qt窗口内OSG渲染操作。Qt以其开源、跨平台、方便快捷、现代化的界面风格等优点&#xff0c;已经成为了目前桌面版CAD/CAE/CAM等软件开发的首选组件。因此&#xff0c;非常有必要在OSG的基础之上&#xff0c;研究Qt桌面系统内集成OSG渲染功能的相关技…

Linux查看机器内存空间

执行 fdisk命令查看磁盘空间 fdisk -l更多方法参考&#xff1a; Linux检查磁盘空间

一种工业机器人绝对精度的提升方法

摘要&#xff1a;一种新的校准方法&#xff0c;使用动作捕捉作为测量工具&#xff0c;利用ELM神经网络作为非几何误差源补偿&#xff0c;提升工业机器人的绝对精度。 工业机器人的绝对精度是评估其综合性能的重要指标之一。然而&#xff0c;由于机器人受到多种因素的影响&#…

概率论的学习和整理19:条件概率我知道,但什么是条件期望?---用来解决递归问题(草稿)

目录 1 目标问题&#xff1a; 什么是条件期望&#xff1f; 条件期望有什么用&#xff1f; 2 条件期望&#xff0c;全期望公式 3 条件期望&#xff0c;全期望公式 和 条件概率&#xff0c;全概率公式的区别和联系 3.1 公式如下 3.2 区别和联系 3.3 概率和随机过程 4 有什…

8年软件测试工程师感悟 —— 写给还在迷茫中的朋友

去年还在全网声讨互联网企业996呢&#xff0c;今年突然没声音了&#xff0c;也不用讨论在哪个路灯上吊死互联网资本家了&#xff0c;因为都被裁了。 继教育培训领域大幅度裁员之后&#xff0c;大厂裁员消息也开始陆续传出&#xff0c;百度AIG,MEG多条业务线进行精简&#xff0…

线程系列 3 - 关于 CompletableFuture

线程系列3-关于 CompletableFuture 1、从 Future 接口说起2、CompletableFuture 对 Future 的改进2.1、CompletionStage 接口类2.2、runAsync 和 supplyAsync 创建子任务2.3、 whenComplete 和 exceptionally 异步任务回调钩子2.4、调用 handle() 方法统一处理异常和结果2.5、异…

重温黑盒、白盒与灰盒测试方法

黑盒、白盒和灰盒测试方法是软件测试中常用的测试策略&#xff0c;用于评估系统的功能和质量。 对于黑盒、白盒与灰盒测试方法的理解&#xff0c;几年前我在某乎做过一个概念性的回答&#xff0c;当时提问者询问&#xff1a;如何跟非技术人员解释黑盒、白盒、灰盒测试的区别&a…

UG\NX二次开发 使用exception类,异常处理的方法

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介 异常处理是一种编程中常见的错误处理机制,它允许程序在遇到错误或异常情况时优雅地处理。在C++中,异常类是一种重要的异常处理工具。 当程序发生错误或异常时,我们可以使用excepti…

查看maven包依赖关系,一行命令搞定。

1&#xff1a;以logback-classic包为例&#xff0c;在命令端运行&#xff0c;下面命令 mvn dependency:tree -Dincludesch.qos.logback:logback-classic 2.会出现以下日志&#xff0c;就可以清楚的知道这个jar包&#xff0c;是在谁的下面。

python 批量下载图片(协程)

要下载的图片网站 1、总共多少页&#xff0c;得到每页的 url 列表 2、每页的图片详情的 ulr 列表&#xff08;因为该高清大图在图片详情页&#xff0c;因此需要去图片详情页拿图片的url) ​​​​​​​ 3、进入图片详情页&#xff0c;获取到图片url 然后下载。 完整代码如下&…

玩转代码|详细盘点JavaScript 数据类型

目录 什么是JavaScript JavaScript 拥有动态类型 JavaScript 字符串 JavaScript 数字 JavaScript 布尔 JavaScript 数组 JavaScript 对象 Undefined 和 Null JS 中如何判断 undefined JS 中如何判断 null 声明变量类型 什么是JavaScript JavaScript&#xff08;简称…

“nacos is starting with cluster”之nacos启动报错问题

下载并解压nacos后&#xff0c;通过点击startup.cmd启动nacos&#xff0c;出现nacos is starting with cluster的错误&#xff0c;导致nacos未能启动成功。 这是因为&#xff0c;通过startup.cmd命令启动nacos&#xff0c;默认是以集群的方式进行启动的&#xff0c;我们可以改…

为3.7亿用户提供优质服务的微众银行,如何保障应用安全、及时上线

微众银行成立于2014年&#xff0c;是国内首家数字银行。作为银行业改革创新的产物&#xff0c;开业八年多来&#xff0c;微众银行积极把握数字经济时代发展新机遇&#xff0c;运用科技手段为小微企业及普罗大众提供特色化、差异化的优质金融服务&#xff0c;在以数字普惠金融服…