跳到主要内容

反调试攻防实战:无限Debugger绕过与开发者工具检测技术解析

· 阅读需 8 分钟

最近和其他师傅挖洞聊天的时候,聊起来说现在好多网站都有无限debugger和禁止打开F12开发者工具,给挖洞过程中造成了很大困难,好多师傅都是之前专注于逻辑漏洞挖掘,近期正好js方面找接口分析加密内容等都需要调试js,所以正好借此机会给大家稍微讲讲我平时遇到无限Debugger和禁用F12开发者工具的解决方案。

因为大家都明白大师在js这块挺菜的。如果说讲的内容大家有啥听不明白的,大家多海涵。

0x01 基础知识:什么是反调试?

了解地图大师的都知道,大师的受众多办事新手师傅,所以大师需要从头把这块技术讲的细节一点。虽然我不会写很理论的东西,但是有时候还是需要强调一下理论的。

1763219325986

反调试是一种代码保护技术,通过在程序中植入特定检测逻辑来阻止或干扰开发者工具的调试分析。它能够检测浏览器开发者工具的开启状态,在发现调试行为时自动触发无限循环、异常抛出或代码混淆等干扰手段,有效防止代码被逆向工程分析和恶意篡改。这种技术广泛应用于保护商业软件的算法逻辑、防止网络爬虫抓取关键数据以及维护Web应用的安全性,是现代Web开发中重要的安全防护措施之一。

用地图大师自己的话说:他就是一种给你挖洞过程增加困难的技术。:对于web方面,反调试就是避免我们安全人员去分析页面js代码,例如打不开F12、或者页面无限debugger(干扰调试),或者是对js内容进行混淆即使我们能够读代码我们也不能很好的理解代码。遇到这种情况我们就要反反调试。

0x02 第一种困难的解决方案:打不开F12怎么办?

此处案例以爱企查官网为例,大家也可以自己看完文章后动手试试:https://aiqicha.baidu.com/

该页面F12是打不开的,这里有两种情况:

(1)可以在其他网页打开F12,然后将你要访问的网站复制到网址栏里

1763219387131

部分网页可使用此种方法曲线打开F12:

1763219410417

(2)第二种方法:尝试在隐私窗口打开网页,有时候可以通过隐私窗口绕过F12打开限制,但是比较少:

1763219420992

(3)第三种方法:有些网页限制了F12还有ctrl+shift+i的组合键,我们可以通过手动点击的方式打开开发者工具:

1763219428304

(4)但是爱企查这个网站有点特殊,即使你打开了开发者工具,他仍然会跳转到空白页,说明他js里面还有限制,但是我们是一个js不熟悉的新手怎么办呢,此时我们可以使用浏览器插件:

1763219435105

使用浏览器插件AntiDebug Breaker,下载地址: https://github.com/0xsdeo/AntiDebug_Breaker

1763219448199

在浏览器插件界面把这些勾都勾选了

1763219455053

成功绕过跳转空白页

1763219461406

0x03 无限Debugger绕过

无限Debugger也是web挖洞的时候经常会遇到的一个比较恶心的技术。

理论: 无限debugger是一种反调试技术,通过在代码中设置循环触发的debugger语句来阻止或干扰开发者工具的正常使用。

简单来说: 就像在代码里安装了一个"不断响应的警报器"——只要打开开发者工具,这个警报器就会每秒多次触发断点,让代码执行不断暂停,使你无法正常调试。

打开大师做的测试靶场F12会发现无限跳转到debugger根本无法完成正常调试工作

1763219481680

但是地图大师也会教大家几种解决方案。

(1)方法1:chrome右键debugger代码行号选择【一律不在此处暂停】

成功调试:

1763219489707

1763219499213(2)方法2:无敌方案,使用最新firefox的原生功能,取消在调试器语句上暂停(这是终极解决方案)

1763219507585

成功调试代码如下:

1763219516975

(3)方法3:找一些浏览器插件,如刚才介绍的 anti debug等,但是火狐这个是大师实战中最好用的。因为测试漏洞的过程中每个网站开发的逻辑都不一样,所以大家根据具体情况选择具体方案即可。