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

  • 怎样删除ie缓存(怎样删除ie)(如何彻底删除ie缓存)

    怎样删除ie缓存(怎样删除ie)(如何彻底删除ie缓存)

  • vivox60第二个卡槽在哪里(vivos6第二张卡插哪里)

    vivox60第二个卡槽在哪里(vivos6第二张卡插哪里)

  • 灰度开是黑白打印吗(灰度和单色哪个是黑白)

    灰度开是黑白打印吗(灰度和单色哪个是黑白)

  • 骁龙665日常够用吗(骁龙665用在哪些手机)

    骁龙665日常够用吗(骁龙665用在哪些手机)

  • 天猫抽检一次之后还会被抽吗(天猫抽检多久一次)

    天猫抽检一次之后还会被抽吗(天猫抽检多久一次)

  • 路由器是不是光猫(路由器的光信号应该亮吗)

    路由器是不是光猫(路由器的光信号应该亮吗)

  • chetl00h可以用电信卡吗

    chetl00h可以用电信卡吗

  • 小米手机如何制作录音文件(小米手机如何制作音乐相册)

    小米手机如何制作录音文件(小米手机如何制作音乐相册)

  • iphonex拉黑后想看短信(iphone拉黑以后)

    iphonex拉黑后想看短信(iphone拉黑以后)

  • 如何视频聊天开手电筒(视频聊天怎么开)

    如何视频聊天开手电筒(视频聊天怎么开)

  • 华为p40原装膜要换吗(华为p40手机原装膜)

    华为p40原装膜要换吗(华为p40手机原装膜)

  • micro接口什么意思(micro接口是什么形状)

    micro接口什么意思(micro接口是什么形状)

  • 店铺层级对流量的影响(店铺的等级和流量的分配)

    店铺层级对流量的影响(店铺的等级和流量的分配)

  • jk触发器是上升沿还是下降沿(jk触发器是上升沿触发还是下降沿)

    jk触发器是上升沿还是下降沿(jk触发器是上升沿触发还是下降沿)

  • 怎样设置行间距和段间距(Excel怎样设置行间距)

    怎样设置行间距和段间距(Excel怎样设置行间距)

  • word导航怎么打开(word导航怎么出来)

    word导航怎么打开(word导航怎么出来)

  • 苹果手机打开旁白会怎么样(苹果手机打开旁白后屏幕变成黑色了)

    苹果手机打开旁白会怎么样(苹果手机打开旁白后屏幕变成黑色了)

  • 手机wps怎么新建表格(手机wps怎么新建空白文档)

    手机wps怎么新建表格(手机wps怎么新建空白文档)

  • xs充电多少w(xs的充电器是多少w的)

    xs充电多少w(xs的充电器是多少w的)

  • 二次申请退款能撤回吗(二次申请退款能撤销吗)

    二次申请退款能撤回吗(二次申请退款能撤销吗)

  • 探探不开会员匹配不到(探探不开会员不能玩吗)

    探探不开会员匹配不到(探探不开会员不能玩吗)

  • 2.5寸硬盘尺寸是多少(硬盘2.5寸是多少厘米)

    2.5寸硬盘尺寸是多少(硬盘2.5寸是多少厘米)

  • ps4系统更新慢怎么解决(ps4更新版本太慢)

    ps4系统更新慢怎么解决(ps4更新版本太慢)

  • iphonexs相机使用技巧(iphonexs照相)

    iphonexs相机使用技巧(iphonexs照相)

  • 宏病毒感染文件类型(宏病毒感染文件用wps打开)

    宏病毒感染文件类型(宏病毒感染文件用wps打开)

  • 结合表单验证谈el-form中model、prop、rules属性(表单验证用什么方法实现)

    结合表单验证谈el-form中model、prop、rules属性(表单验证用什么方法实现)

  • Java基础之变量(java基础变量字节)

    Java基础之变量(java基础变量字节)

  • 个人所得税计提分录怎么写
  • 拍卖行业收取手续费标准
  • 采购材料入库会计分录怎么写的
  • 备用金可以不要发票吗
  • 事业单位资产划转流程
  • 一般纳税人支付给小规模纳税人的税率
  • 金税盘显示已到锁死期,未到汇总期是什么原因
  • 个体工商户核定征收税率
  • 资产负债表总账科目有哪些
  • 发票丢失说明怎么填写
  • 出售商品取得的收入300万元存入银行
  • 个人合伙清算如何起诉
  • 结转应交所得税属于利润分配吗
  • 收到客户不要的定金怎么做账?
  • 货样广告品管理办法
  • 事业单位预算外收入
  • 事业单位其他应付款贷方余额表示什么
  • 资源税是否需要计提?
  • 怎么看增值税专用发票是进项还是销项
  • 股东分红个人所得税怎么申报
  • 地税三方协议是什么意思
  • 预付账款的借方是应付账款的哪方
  • 出口佣金会计分录
  • 支票能够拿来付款吗
  • 所得税补缴自查需要缴纳什么
  • 专票只能开一万的额度开了三万的发票
  • 发票单据流水号
  • linux版笔记本什么意思
  • mac怎么删除应用程序中没有的软件
  • 拓展销售市场发生的业务招待费计入
  • php的array_multisort()使用方法介绍
  • 房屋权属转移是什么意思
  • 企业发放年终奖政府有哪些规定?
  • ai绘画图片
  • 宝塔怎么做?
  • 财务章有几种样式
  • 外包食堂可以开专票吗
  • json转pojo
  • 红字信息表重复开具怎么处理
  • 个人跑运输怎么开发票
  • 小规模纳税人开票限额是多少
  • 转账支票背书盖章图位置
  • 奖金如何做账会计分录
  • 个人工作室需要做账吗
  • 出口货物当月销售当月就要开票吗
  • 广告费的税费分录
  • 专票已认证还能作废吗
  • 风险纳税人认定条件2020
  • 调整以前年度费用如何做分录
  • 润滑油消费税计算公式
  • 公司在建厂房图片大全
  • 销售货物的运费的税率怎么算
  • 员工报销固定资产怎么算
  • 购买原材料产生的运费计入什么科目
  • 购买税控盘用银行抵扣吗
  • 办公室装修费用怎么入账
  • 收据能作为抵减成本吗
  • 会计软件入什么科目
  • 建筑劳务公司的会计账务处理
  • airdrop怎么用?
  • ie标签页
  • ubuntu调出命令行
  • winxp系统停止服务
  • ultraiso刻录音乐到dvd
  • window10 屏幕
  • linux里chmod
  • [置顶]JM259194
  • python标准库很庞大,它可以帮助处理各种工作,包括
  • pythonreduce函数的作用
  • perl 文件
  • JavaScript的21条基本知识点
  • vue是如何实现双向绑定的
  • android手机传感器应用程序
  • node.js 流
  • nodejs await
  • unity behavior designer
  • python常用操作运算符
  • android应用开发基础课后答案
  • python3中map
  • 什么叫售后回租赁合同
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设