位置: 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无线网慢怎么办(苹果无线网慢怎么回事)

  • 抖音怎么送钻卡给别人(怎么抽到抖音钻卡)

    抖音怎么送钻卡给别人(怎么抽到抖音钻卡)

  • 手机上传速度慢怎么解决(手机上传速度慢下载速度快)

    手机上传速度慢怎么解决(手机上传速度慢下载速度快)

  • 滴滴打车可以预约第二天的车吗(滴滴打车可以预约时间吗怎么预约)

    滴滴打车可以预约第二天的车吗(滴滴打车可以预约时间吗怎么预约)

  • qq动态密码是什么(qq的动态密码是啥意思)

    qq动态密码是什么(qq的动态密码是啥意思)

  • 苹果自带数据线最大电流(苹果自带数据线支持多少瓦)

    苹果自带数据线最大电流(苹果自带数据线支持多少瓦)

  • 华为wastl10是什么型号(华为was-tl10)

    华为wastl10是什么型号(华为was-tl10)

  • 允许在mac上付款什么意思(充许在mac上支付)

    允许在mac上付款什么意思(充许在mac上支付)

  • 电话暂时无人接听是什么意思(电话暂时无人接听请稍后再拨是什么意思)

    电话暂时无人接听是什么意思(电话暂时无人接听请稍后再拨是什么意思)

  • 小米8能不能插内存卡(小米8能不能插两张电信卡)

    小米8能不能插内存卡(小米8能不能插两张电信卡)

  • 电脑登录微信手机退出后电脑还在线吗(电脑登录微信手机可以退出来吗)

    电脑登录微信手机退出后电脑还在线吗(电脑登录微信手机可以退出来吗)

  • exfat为什么不适合机械硬盘

    exfat为什么不适合机械硬盘

  • ps如何吸取颜色(ps如何吸取颜色并涂抹)

    ps如何吸取颜色(ps如何吸取颜色并涂抹)

  • 怎样在手机上看电视直播节目(怎样在手机上看电视剧免费)

    怎样在手机上看电视直播节目(怎样在手机上看电视剧免费)

  • 怎么给电话手表定位(怎么给电话手表添加联系人)

    怎么给电话手表定位(怎么给电话手表添加联系人)

  • 抖音删了的视频怎么找回(抖音删了的视频在哪里找回)

    抖音删了的视频怎么找回(抖音删了的视频在哪里找回)

  • 网线分线器影响速度吗(网线分线器影响网速吗)

    网线分线器影响速度吗(网线分线器影响网速吗)

  • 怎么提高打字速度和准确度(怎么提高打字速度到150)

    怎么提高打字速度和准确度(怎么提高打字速度到150)

  • 如何查看手机的版本号(如何查看手机的型号)

    如何查看手机的版本号(如何查看手机的型号)

  • win11系统开机密码如何取消 Window11系统取消开机密码操作方法(win11系统开机密码设置)

    win11系统开机密码如何取消 Window11系统取消开机密码操作方法(win11系统开机密码设置)

  • win11如何设置多任务窗口 Win11开启分屏多任务方法(win11多任务怎么用)

    win11如何设置多任务窗口 Win11开启分屏多任务方法(win11多任务怎么用)

  • 从庞塞德莱昂河口向灯塔望去,佛罗里达州 (© Jason Sponseller/Shutterstock)(庞塞 德莱昂)

    从庞塞德莱昂河口向灯塔望去,佛罗里达州 (© Jason Sponseller/Shutterstock)(庞塞 德莱昂)

  • php变量如何声明(在php中声明变量时,变量名称以什么符号开头)

    php变量如何声明(在php中声明变量时,变量名称以什么符号开头)

  • 防伪税控税务端官网
  • 结转本年利润要扣除企业所得税吗
  • 缴纳以前年度所得税怎么做分录
  • 会计工资标准
  • 递延收益的核算
  • 客户到期不付款如何处理
  • 一般纳税人小微企业印花税优惠政策
  • 办公室转租怎么给对方开发票
  • 建筑企业收到招聘短信
  • 旧公司库存如何管理
  • 增值税专用发票电子版
  • 销售人员的提成属于什么工资
  • 企业退休返聘人员工资是否缴纳单位社保
  • 存款取款业务记入那个日记账?
  • 其他应付款变动率公式
  • 财产租赁合同金额含税吗
  • 海关进口增值税计算公式
  • 如何理解纳税人资格
  • 分包抵扣计算
  • 工商年报网上申报要钱吗
  • 小规模纳税人增值税免征额
  • 发票冲红后是否可以重开
  • 固定资产报多好还是报少好
  • 企业缴纳社保包含哪些内容
  • wifi网速太慢了怎么回事
  • 购入嵌入式软件能一次性扣除吗
  • Win10宽带无法连接
  • win11系统打不出顿号
  • 绣球花的叶子出现了斑点,这是怎么了?
  • fedora23安装
  • 原材料因管理不善发生毁损
  • 其他应收款期末贷方余额表示什么
  • 森佩塑胶
  • 编程中char什么意思
  • 增值税发票开具规定
  • 买一赠一的销售方式
  • php显示当前时间
  • mysql各种索引的使用场景
  • 平时加班和节假日加班工资
  • 房屋出租收入是其他业务收入吗
  • microsoft SQL server 2014可以删吗
  • 深入浅出embedding pdf
  • sqlserver数据导入mysql
  • 预收账款的核算处理
  • 两处以上取得工资如何申报个税
  • 应收账款坏账计提比例新标准
  • 逾期未认证的增值税发票处理办法
  • 运费少给怎么办
  • 认证抵扣发票
  • 投资其他公司做什么科目
  • 弱电系统可以入户门吗
  • 固定资产报废由谁审批
  • 生产型企业的主要绩效考核指标
  • 一个完整的活动策划方案范文
  • win7电脑一键关机快捷键
  • win8更改桌面位置
  • win10系统添加语言
  • ubuntu16.04添加用户
  • linux中sed
  • eac.exe是什么
  • linux系统中安装软件的批处理文件
  • win7 64位系统双击桌面所有程序提示"文件没有与之关联的程序来执行"的解决方法
  • linux bye
  • linux查看进程并杀死
  • cocos2dx游戏案例
  • 谈谈对环境保护认识话题三分钟
  • android中的布局分为6种,分别是
  • unity做3d游戏
  • js array api
  • nodejs settimeout异步
  • vue异步加载第三方库
  • document.all.value
  • 网页js识别设备的唯一性
  • 使用jquery实现的项目
  • python中函数参数类型
  • 票据代码和票据号码是什么意思
  • 国家税务总局千户集团企业名单
  • 代扣代缴企业所得税会计分录
  • 山东省国税网
  • 印花税票在哪里可以查到
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设