首页 > 其他分享 >chrome浏览器断点调试工具之无限debugger的原理与绕过

chrome浏览器断点调试工具之无限debugger的原理与绕过

时间:2024-11-02 19:48:48浏览次数:3  
标签:fiddler debugger chrome 禁用 js 无限 断点

文章目录

1、debugger介绍

debugger 是JavaScript中定义的一个专门用于断点调试的关键字,只要遇到它,JavaScript的执行便会在此处中断,进入一种调试模式。有了 debugger 这个关键字,该 debugger 会被网站开发者利用,使其成为我们正常调试的拦截手段

2、无限debugger案例演示

请添加图片描述

在我们没设置任何断点的情况下,它就直接进入了断点模式。这时候我们可以点击 Resume script execution(恢复脚本执行)按钮,尝试跳过这个断点继续执行,如下图所示:
请添加图片描述

然而不管我们点击多少次按钮,它仍然一次次地进入断点模式,无限循环下去,我们称这样的情况为无限debugger。那我们如何解决这种干扰手段呢?

3、无限debugger解决方法

3.1 实现原理


首先要做的是找到无限 debugger 的源头。在 Sources 面板中可以看到,debugger 关键字出现在一个 JavaScript 文件里,这时点击左下角的格式化按钮,那我们仔细观察该文件,如下图所示:
请添加图片描述

截图中setInterval方法表示循环,循环执行 debugger 语句。无限 for 循环、无限 while 循环也都能实现该需求,原理都大同小异

3.2 方法1:禁用断点(全局)


该方法是禁用所有断点,按钮变成蓝色表示全局禁用,如下图所示:
请添加图片描述
刷新页面就不会再进入到无限 debugger 的状态了。但是这种全局禁用其实并不是一个好的方案,因为禁用之后我们也无法在其他位置增加断点进行调试了,所有的断点都失效了

3.3 方法2:局部禁用(1)


在 debugger 语句所在的行数上单击鼠标右键,此时会出现一个快捷菜单,如下图所示:
请添加图片描述

操作完后会发现当前行数前多了一个?符号,同时 Breakpoints 也出现了刚才添加的断点位置,这时再次点击 Resume script execution(恢复脚本执行)按钮,就可以发现我们不会再进入无限 debugger 模式了;如下图:
请添加图片描述

3.4 方法3:局部禁用(2)


我们也可以选择另外一个选项 Add conditional breakpoint(添加条件判断)跳过debug,这个模式我们可以设置进入断点的条件,如下图所示:
请添加图片描述

由于这里是无限循环,我们没有什么具体的变量可以作为判定依据,因此可以直接写一个简单的表达式false来控制断点的执行:请添加图片描述

此时效果就和选择 Never pause here 选项一样,重新点击 Resume script execution(恢复脚本执行)按钮,也不会进入无限 debugger 循环了

3.5 方法4:利用第三方工具fiddler解除无限debug

fiddler的使用安装教程推荐:https://blog.csdn.net/u012917925/article/details/137993903

  • 实现原理

我们知道fiddler作为客户端和服务器的中间人,客户端向服务器发送请求以及服务器返回响应数据给客户端都要经过fiddler,因此我们就可以利用fiddler拦截服务器返回给客户端的JS文件,修改js文件中的debugger源码,然后在发送给客户端,这样就可以解决问题了

  • 操作方法
  1. 我们打开目标网站,进入开发者模式,点击上方的调试按钮,发现有两个js文件都出现了debugger,我们在文件空白处右键点击save as ,将两个文件都保存至本地
    在这里插入图片描述


2. 找到保存的js文件,将它们通过记事本或文本文档打开
在这里插入图片描述


3. 打开两个js文件,搜索关键字 debugger ,将debugger相关的内容全部删除,然后 ctrl+s 保存退出
在这里插入图片描述
在这里插入图片描述


4. 我们将浏览器改为系统代理,打开fiddler自动响应选项下,做如下步骤
在这里插入图片描述

可以在js文件空白处右键得到js文件的链接,复制到fiddler中,在导入本地修改好的文件,然后保存,两个js文件操作相同,演示如下:
在这里插入图片描述

5. 在fiddler中添加完规则后,返回浏览器,重新点击系统代理发送请求,发现debugger已经消失,修改成功!!!
在这里插入图片描述


注意:
浏览器在运行过程中,不能关闭fiddler后台,否则规则会立即失效

标签:fiddler,debugger,chrome,禁用,js,无限,断点
From: https://blog.csdn.net/m0_59470317/article/details/143454201

相关文章

  • Chromium 中chrome.topSites扩展接口定义c++
    一、chrome.topSites使用 chrome.topSites API访问新标签页上显示的热门网站(即最常访问的网站)。不包括用户自定义的快捷方式。权限topSites您必须声明“topSites”扩展程序清单中授予使用此API的权限。{ "name":"Myextension", ... "permissions":[ ......
  • 如何使用Chrome DevTools
    想要高效地使用Chrome浏览器进行开发和调试,你需要掌握以下几点:一、熟悉基本界面与工具栏;二、理解Elements面板的用途;三、熟练使用Console面板;四、掌握Network面板的功能;五、深入Source和Performance面板。首先,你需要了解ChromeDevTools的入口和基本界面。一、熟悉基本界面与......
  • ETL集成工具丨如何运用ETLCloud单步调试断点功能
    在现代数据处理领域,ETLCloud的单步调试断点功能正成为数据管理的重要工具。ETLCloud是一个强大的云端数据处理平台,它提供了灵活的单步调试功能,使得用户能够逐步跟踪和分析数据处理流程。本文将探讨如何运用ETLCloud的单步调试断点功能来优化数据转移过程,从而提升数据处理的效......
  • 新工具可绕过 Google Chrome 的新 Cookie 加密系统
    一位研究人员发布了一款工具,用于绕过Google新推出的App-Bound加密cookie盗窃防御措施并从Chrome网络浏览器中提取已保存的凭据。这款工具名为“Chrome-App-Bound-Encryption-Decryption”,由网络安全研究员亚历山大·哈格纳(AlexanderHagenah)发布,因为他注意到其他......
  • chromedriver安装
    chromedriver安装1、谷歌浏览器的版本必须与chromedriver版本一致查看谷歌浏览器版本,打开谷歌浏览器->设置->帮助->找到版本号,例如129.0.6668.1012、参考官网最新版的下载地址https://googlechromelabs.github.io/chrome-for-testing,拼接出自己需要的例如,打开下面网址,即可直......
  • C#判断点是否在矩形内
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!人工智能学习网站前言:大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在C#开发中经常需要对平面中的坐标位置进行一些判断,比如判......
  • 在 Kubernetes 中运行 Locust 与 Selenium:安装 Chrome 和 ChromeDriver
    在现代软件开发中,性能和用户体验是至关重要的,而负载测试和自动化测试可以帮助我们实现这一目标。在本文中,我们将讨论如何在Kubernetes环境中运行Locust和Selenium,并详细介绍如何安装Chrome和ChromeDriver。1.Dockerfile配置首先,我们需要创建一个Dockerfile,以构建一个......
  • 苹果的Safari浏览器和谷歌的Chrome浏览器哪个更优
    苹果的Safari浏览器和谷歌的Chrome浏览器在多个关键领域展现出显著的差异,包括:1.系统集成和优化;2.性能和速度;3.隐私保护措施;4.用户界面设计;5.扩展程序和插件支持。Safari作为苹果生态系统的一部分,提供了优化的系统集成和隐私保护,而Chrome则以其快速的性能和广泛的扩展支持在用户中......
  • chrome 控制台console 调用vue页面的方法--来自chatgpt的回答
    问题二:vue2的项目中chrome控制台输入$0.vue会输出什么在Vue2项目中,如果你在Chrome控制台中输入$0.__vue__,这个命令会返回$0当前选中的DOM元素对应的Vue实例。解释:$0:代表ChromeDevTools中当前选中的DOM元素。.vue:这是Vue2中的一个内部属性,它持有与该D......
  • Chrome浏览器跨越设置
    如何设置Chrome浏览器跨域AccesstoXMLHttpRequestat'xxxxxx'fromorigin'null'hasbeenblockedbyCORSpolicy:Crossoriginrequestsareonlysupportedforprotocolschemes:chrome,chrome-extension,chrome-untrusted,data,http,https,isol......