位置: 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饼图参数配置)

  • 销售软件系统退货怎么退
  • 应收账款资金占用费公式
  • 什么是一般公共财政预算收入
  • 有金额的框架协议要交印花税吗
  • 个税中房屋租赁日期写长跟写短
  • 固定资产无法使用不能带来经济利益是否需计提租金
  • u8反记账操作步骤
  • 失控发票补税可以抵扣吗
  • 中兴通技术维护费
  • 用于职工住宿的会计科目
  • 通过扣缴义务人和综合申报哪个好
  • 短期筹资方式有没有股票
  • 报销增值税发票和普通发票
  • 转让旧房增值税计税依据
  • 年化收益率和年利率的区别的例子
  • 一般纳税人增值税优惠政策
  • 物业公司转售电费怎么开票
  • 周转材料低值易耗品摊销
  • 事业单位存货盘盈
  • 投资公司收回投资款
  • 工商年报中纳税总额包括工会经费吗
  • 需要预缴增值税
  • 金融机构利息超过多少不合法
  • 主营业务收入和产值
  • 购买软件会计账务处理
  • 在建工程二级科目待摊支出
  • 小规模纳税人开专票不超过30万要交税吗
  • 查补的增值税如何申报
  • 工程款中包含增值税怎么处理
  • linuxnl
  • 王者荣耀如何更改战区
  • 办公室椅子固定
  • 耕地占用税的税收优惠
  • 更新kb4584229
  • 借方为什么要转账
  • PHP选项代码
  • win11搜索栏不能用
  • 提租补贴应计入什么科目
  • 境外向国内汇款新规
  • 实例讲解YII2中多表关联的使用方法
  • php获取当前页面
  • thinkphp模板引擎原理
  • php面试知识点
  • 物流辅助服务要办许可证吗
  • 公司期货套期保值会计处理方法
  • 库存商品的进销存怎么做账
  • 非独立核算的分公司如何报税
  • 招待客户住宿费进项税可以抵扣吗
  • 网上学电脑哪个软件好
  • 日主题ripro v8.1破解版(修复缓存器功能)
  • rust 前端开发
  • mongorepository排序
  • 纳税申报表上的销售额是不含税的吗
  • 工程施工企业转账手续费计入什么会计科目
  • 公司法人代表可以有几个
  • 处置公司车辆收据怎么写
  • 扣员工工作服费用合法吗?
  • 加计扣除所得税怎么算
  • etc 电子票
  • 交通费属于什么部门
  • 增值税专用发票和普通发票的区别
  • 车子租赁费开什么发票?多少税
  • sqlserver 断开数据库连接
  • sql中的coalesce
  • 新品分析表格
  • ubuntu安装mkl
  • win10系统预览版
  • xp安装磁盘格式
  • Win10 Mobile build 10586.338安装/上手体验视频
  • linux拉起进程
  • 游戏开发u3d
  • android 样式
  • linux ls-l命令详解
  • 深入理解计算机系统
  • android简单app实例
  • javascript面向对象吗
  • 北京税务跨区迁移不予受理,原因是什么
  • 税务总局33号公告
  • 北京摇号摇中了能过户吗
  • 电子发票开具之前有销售方字样,为什么开具出来就不显示了?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设