位置: IT常识 - 正文

Web Spider Fiddler - JS Hook 基本使用

编辑:rootadmin
Web Spider Fiddler - JS Hook 基本使用

推荐整理分享Web Spider Fiddler - JS Hook 基本使用,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

文章目录前言一、资源下载二、什么是Hook三、Hook 的几种方式四、Fiddler - 编程猫插件安装五、Fiddler - Hook 案例六、常用的js hook代码Hook CookieHook Header总结前言

Hook技术也叫钩子函数,功能是把网站的代码拉出来,改成我们自己想执行的代码片段,简单来说就是可以控制执行函数的入参和出参;

一、资源下载

编程猫插件:https://pan.baidu.com/s/1SP8xHoDpugssFRpu-nLxPw?pwd=zhou

二、什么是Hook

什么是hook

js执行流程,初始化(自执行)、页面逻辑、等待用户输入、加密数据、提交数据;在以上任意一个环节,插入自己的代码,让浏览器先执行插入代码然后再执行网站原有代码;上下文 = 一个项目环境,JS上下文(JS v8虚拟机),作用域(变量所生效的位置)是处在上下文当中的;从浏览器来看,(新页面、新线程)就是一个新的上下文,eval打开虚拟机运行JS代码是原来的上下文;hook的目的,改变原来的代码或者原来代码的执行流程;hook时机,只会影响hook完成之后的代码操作;浏览器初始化hook,需要借助(油猴[通过浏览器插件形式监听浏览器接收数据的方法],FD插件[通过代理形式]),修改原数据;三、Hook 的几种方式

hook的几种方式

覆盖原来的方法,在相同的作用域,写一个新方法赋值给原方法的变量对象;ES6的语法,Object.defineProperty(obj, prop, descriptor),比覆盖原来的方法更加强大;使用详解;Object.defineProperty的作用:给对象重新定义属性,监听属性的设置值(set方法)和获取值(get方法);JS Proxy,给对象整体监听(属性初始化、设置值、获取值、构造函数、比较广),使用详解;下面具体介绍一下Object.defineProperty()Web Spider Fiddler - JS Hook 基本使用

Object.defineProperty的参数

obj:需要定义属性的当前对象;prop:当前需要定义的属性名;descriptor:属性描述符,可以取以下值;

set方法 & get方法 介绍

set(),赋值的方法;get(),取值的方法;四、Fiddler - 编程猫插件安装

1、将下载好的压缩包解压; 2、将插件所有文件复制到 (默认)C:\Program Files (x86)\Fiddler2\Scripts,fiddler的安装目录; 3、首次使用必须右键以管理员身份启动 fiddler,fiddler 版本必须 >= v4.6.3,下面是插件安装成功的截图;

五、Fiddler - Hook 案例

1、这里以某站的cookie为例 2、下面分析一下hook代码

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

重点:if (val.indexOf('buvid3') != -1) {debugger;},检索 buvid3 在字符串中首次出现的位置,-1表示没有出现,反之为出现,出现则进入条件进行debugger;

3、打开fiddler 将hook代码粘贴至编程猫插件中,勾选开启,增添了新的代码会自动保存; 4、清除浏览器的cookie,刷新某站的页面,即可断住; 5、注意:可以在右侧的调用栈里(Call Stack)看到一些函数的调用过程,依次向上跟进就能够找到最开始buvid3生成的地方

六、常用的js hook代码Hook Cookie

Cookie Hook 用于定位Cookie中关键参数生成的大概位置,下列代码演示了当Cookie中匹配到了关键字buvid3则进行debugger;

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

Cookie Header 用于定位Header中关键参数生成的大概位置,下列代码演示了当Header中匹配到了关键字token则进行debugger;

(function () { var org = window.XMLHttpRequest.prototype.setRequestHeader; window.XMLHttpRequest.prototype.setRequestHeader = function (key, value) { if (key == 'token') { debugger; } return org.apply(this, arguments); };})();总结

以上就是今天要讲的内容,本文仅仅简单介绍了JS Hook 的基本使用,后续有更多好用的JS Hook 代 码会在此篇博文更新; 最后我推荐一篇较好的相关博文:JS 逆向之 Hook,吃着火锅唱着歌,突然就被麻匪劫了!

本文链接地址:https://www.jiuchutong.com/zhishi/297601.html 转载请保留说明!

上一篇:uni-app ——使用uploadFile上传多张图片

下一篇:Echarts 饼图基本用法(echarts饼图参数配置)

  • 苹果x面容识别不了是怎么回事(苹果X面容识别不了怎么回事)

    苹果x面容识别不了是怎么回事(苹果X面容识别不了怎么回事)

  • 三星note9越用越卡(三星note9为什么这么重)

    三星note9越用越卡(三星note9为什么这么重)

  • 微信号逻辑错误是什么意思(微信号逻辑错误怎么解决)

    微信号逻辑错误是什么意思(微信号逻辑错误怎么解决)

  • 淘宝满减后退货怎么办(淘宝满减后退货还会满减吗)

    淘宝满减后退货怎么办(淘宝满减后退货还会满减吗)

  • 抖音显示在线时间准确吗(抖音显示在线时间,两天以上就不显示了吗)

    抖音显示在线时间准确吗(抖音显示在线时间,两天以上就不显示了吗)

  • 华为nova6开机键在哪(华为nova6开机键发烫是怎么回事)

    华为nova6开机键在哪(华为nova6开机键发烫是怎么回事)

  • 华为荣耀8x怎么隐藏应用程序(华为荣耀8x怎么录屏)

    华为荣耀8x怎么隐藏应用程序(华为荣耀8x怎么录屏)

  • a57什么时候上市的(a55什么时间上市)

    a57什么时候上市的(a55什么时间上市)

  • qq消息提醒声音在哪里设置(qq消息提醒声音怎么跟随系统)

    qq消息提醒声音在哪里设置(qq消息提醒声音怎么跟随系统)

  • i5 3470配什么主板(i5 3470配什么主板性价比)

    i5 3470配什么主板(i5 3470配什么主板性价比)

  • 为什么无法连接移动网络(为什么无法连接到app Store)

    为什么无法连接移动网络(为什么无法连接到app Store)

  • 多媒体个人计算机是指(多媒体个人计算机系统包括)

    多媒体个人计算机是指(多媒体个人计算机系统包括)

  • 优酷电视版叫什么名字(优酷的电视版叫什么名字)

    优酷电视版叫什么名字(优酷的电视版叫什么名字)

  • 华为路由器中间的按钮干嘛的(华为路由器中间的h干嘛的)

    华为路由器中间的按钮干嘛的(华为路由器中间的h干嘛的)

  • 快手将对方拉人拉黑看得见我作品吗(快手将对方拉人会怎么样)

    快手将对方拉人拉黑看得见我作品吗(快手将对方拉人会怎么样)

  • 怎么把聊天记录导出来(怎么把聊天记录发到朋友圈)

    怎么把聊天记录导出来(怎么把聊天记录发到朋友圈)

  • 图片高度宽度缩放比例怎么设置(图片高度宽度缩放)

    图片高度宽度缩放比例怎么设置(图片高度宽度缩放)

  • 黄钻访问空间记录浏览量吗(黄钻访问黄钻空间会被看到吗)

    黄钻访问空间记录浏览量吗(黄钻访问黄钻空间会被看到吗)

  • 华为p30充电要多久(华为p30充电要多久才能充满)

    华为p30充电要多久(华为p30充电要多久才能充满)

  • 网易云怎么看附近的人(网易云怎么看附近动态)

    网易云怎么看附近的人(网易云怎么看附近动态)

  • 淘宝怎么搜索直播id(淘宝怎么搜索直播间)

    淘宝怎么搜索直播id(淘宝怎么搜索直播间)

  • mc374哪一年发布的(mc374ch)

    mc374哪一年发布的(mc374ch)

  • 苹果8p长度多少厘米(苹果8p是有多长)

    苹果8p长度多少厘米(苹果8p是有多长)

  • 华为nova 4主要参数是多少(华为nova4性能参数)

    华为nova 4主要参数是多少(华为nova4性能参数)

  • qq的耳朵标志是什么(qq的那个耳朵标识)

    qq的耳朵标志是什么(qq的那个耳朵标识)

  • 更改Onedrive文件夹名(更改onedrive文件夹位置)

    更改Onedrive文件夹名(更改onedrive文件夹位置)

  • 鸿蒙系统怎么快速删除相册中相似照片? 鸿蒙快速找出相似照片的技巧(鸿蒙系统怎么快速充电)

    鸿蒙系统怎么快速删除相册中相似照片? 鸿蒙快速找出相似照片的技巧(鸿蒙系统怎么快速充电)

  • 报废汽车残值收入
  • 工业企业提供劳务收入属于什么收入
  • 材料出入库制度
  • 发票红票和退票区别在哪
  • 企业实缴不到位怎么办
  • 其它综合收益影响因素
  • 所得税季报填错了已经申报了
  • 会计和税法折旧年限不同如何计算终结期现金净流量
  • 发票冲红需要什么手续
  • 技术服务行业分析
  • 外购一批原材料对外销售
  • 小规模纳税人变成一般纳税人的条件
  • 不预缴会怎么样
  • 出口业务增值税免抵税额
  • 关于税控清卡清算的报告
  • 应退税款抵扣欠缴税款
  • 小微企业增值税减免账务处理
  • 原材料盘亏会计分录怎么做
  • 收到一张免税发票能抵税吗
  • 法人向公司借款用途怎么写
  • 商事账簿编制的一般规则是什么
  • 此应用无法在你的电脑上运行w11
  • 设置ahci模式后,开不了机
  • 油费餐费入什么科目
  • 海康工业相机彩色改黑白设置
  • 布里斯托尔景点
  • 在建工程减值准备
  • 气泡星云图片
  • 为什么结转各项支出时本年利润在借方
  • php验证身份证号
  • 银行贴现利息怎么做账务处理
  • 基建账并账规定
  • pytorch创建模型
  • mysql水平拆分实现
  • 收到借款时 会计科目怎么做
  • 工程提成会计分录怎么做
  • 高速公路费如何开票
  • 矿产资源补偿费计入管理费用吗
  • 开具增值税专用发票和普通发票的区别
  • 向农业生产者收购的原木 进项
  • 抵扣的进项税如何做账
  • 为什么收到要发1
  • 代垫电费收回开票吗
  • 6月工资7月发8月申报
  • 销售返利如何做会计分录
  • 研发支出 期末
  • 车船费代交是什么意思
  • 公司注销后应收账款转给个人
  • 带赠品折扣的发票怎么开
  • 进项税留抵怎么做分录
  • 股东股权转让印花税 公司承担
  • 成本结转的方法实例
  • 租赁财产的残值处理
  • 商标是无形资产还是商誉
  • 技术转让要交所得税吗
  • 商品销售成本的计算方法中,商品零售企业
  • win7系统怎么设置开机启动项
  • 安装了windows
  • win10系统预览版
  • mac os图片
  • win7 win8.1双系统安装教程
  • 解决ubuntu和win10关机重启界面不动
  • 怎么取消win10通知消息
  • rsmsink.exe - rsmsink是什么进程 有何作用
  • win7关机没反应怎么办
  • win8 metro启动界面
  • node async await
  • jquery教程
  • node.js操作文件
  • perl里怎么对数组实现一次遍历
  • opengl 实现
  • 实用的批处理命令
  • 手把手教你使用opc
  • unity 面向对象
  • 记录我的生活日常
  • 使用jquery实现的项目
  • 集资房税收问题
  • 怎么知道税控盘有没有注销
  • 怎么删除天眼查诉讼信息
  • 辽宁省耕地占用税适用税额表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设