监控、定位JavaScript操作cookie

本文介绍了一款用于监控和定位JavaScript操作cookie的脚本,包括其功能、优势、安装方法和详细使用教程。脚本提供监控Cookie变化和设置断点的能力,且不影响浏览器的Cookie管理。此外,文章还讲解了如何通过断点规则进行更精细化的调试。
摘要由CSDN通过智能技术生成

监控、定位JavaScript操作cookie

一、脚本说明

为什么会有这个东西?

数据无价的时代,爬虫与反爬的对抗已经进入白热化状态,其中Cookie反爬是最常见之一的反爬类型, 网站方通过混淆得亲妈都不认识的JS代码设置Cookie(通常是浏览器指纹、请求时必须带上的Cookie之类的),
面对请求时必须要带上但是又不知道在哪里生成的Cookie, 你在几万行混淆的亲妈都不认识的JS屎海中苦苦挣扎希望能找到生成Cookie的地方(要是逆向思路不科学兴许还会呛上几口…),
甚至几度想找个借口骗自己放弃,或者要不干脆用Selenium之类的浏览器模拟方式算了? 怂个球,此脚本就是来助你一臂之力的! (你我都知道,这段只是撑场面的废话,你可以略过,如果你没有不幸读完的话…)

脚本功能

本脚本的功能大致分为两个部分:

  • monitor: 监控所有JS操作cookie变化的动作并打印在控制台上
  • debugger: 在cookie符合给定条件并且发生变化时打debugger断点

Hook生效的条件

  • 需要本脚本被成功注入到页面头部最先执行,脚本都未注入成功自然无法Hook
  • 需要是JavaScript操作document.cookie赋值来操作Cookie才能够Hook到 (目前还没碰到不是这么赋值的…)

使用须知

本脚本是通过将自己的JS代码注入到页面,Hook住document.cookie来完成各种功能, 因此在使用本脚本之前要先确定要搞的Cookie确实是通过JS生成的
(后面介绍了一种非常简单的确定Cookie是JS生成还是服务器返回的方式)。

二、有何优势?

2.1 不影响浏览器自带的Cookie管理

目前很多Hook脚本Hook姿势并不对,本脚本采用的是一次性、反复Hook,对浏览器自带的Cookie管理无影响:

https://raw.githubusercontent.com/JSREI/js-cookie-monitor-debugger-hook/main/images/img.png

2.2 功能更强:监控Cookie变化

除了cookie断点功能之外,增加了Cookie修改监控功能,能够在更宏观的角度分析页面上的Cookie:

https://raw.githubusercontent.com/JSREI/js-cookie-monitor-debugger-hook/main/images/img_1.png

(算了,放弃打码了…)

颜色是用于区分操作类型:

  • 绿色是添加Cookie
  • 红色是删除Cookie
  • 黄色是修改已经存在的Cookie的值

每个操作都会跟着一个code location,单击可以定位到做了此操作的JS代码的位置。

2.3 功能更强:打断点时细分Cookie变化类型

从v0.6开始引入了功能更强大并且配置更灵活的断点规则,引入事件机制, 将Cookie修改细分为增加、删除、更新三个事件,支持更细粒度的打断点, 关于Cookie事件,详情请参阅本文第五部分。

关于为什么要这样设计? 一种比较常见的情况,目标网站有反爬的Cookie是JS设置的, 但是JS代码的逻辑是先疯狂的删除,然后删除好多次之后才添加真正的值, 这种方式设置Cookie正好能反制一般的Cookie Hook调试。

这里是其中一个例子,比如F5的Cookie保护,有一个Cookie TS51c47c46075,它就是先被删除好多次,然后再被添加一次:

这种情况下可以针对添加名为TS51c47c46075的Cookie事件打一个断点, 就可以避免那些红色的删除事件混淆视听。

三、 安装

3.1 安装油猴插件

理论上只要本脚本的JS代码能够注入到页面上即可,这里采用的是油猴插件来将JS代码注入到页面上。

油猴插件可从Chrome商店安装:

https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo

如果无法翻墙,可以在百度搜索“Tampermonkey”字样寻找第三方网站下载,但请注意不要安装了虚假的恶意插件,推荐从官方商店安装。

其它工具亦可,只要能够将本脚本的JS代码注入到页面最头部执行即可。

3.2 安装本脚本

安装油猴脚本可以从官方商店,也可以拷贝代码自己在本地创建。

3.2.1 从油猴商店安装本脚本

推荐此方式,从油猴商店安装的油猴脚本有后续版本更新时能够自动更新,本脚本已经在油猴商店上架:

https://greasyfork.org/zh-CN/scripts/419781-js-cookie-monitor-debugger-hook

3.2.2 手动创建插件

如果您觉得自动更新太烦,或者有其它的顾虑,可以在这里复制本脚本的代码:

https://github.com/CC11001100/js-cookie-monitor-debugger-hook/blob/main/js-cookie-monitor-debugger-hook.js

review确认没问题之后在油猴的管理面板添加即可。

四、监控Cookie的变化(monito

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值