您现在的位置是:首页 > Javascript
当前栏目
【JS 逆向百例】网洛者反爬练习平台第五题:控制台反调试
2023-04-18 16:14:10 时间
声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
逆向目标
- 目标:网洛者反反爬虫练习平台第五题:控制台反调试
- 链接:http://spider.wangluozhe.com/challenge/5
- 简介:打开浏览器控制台,控制台 Console 位置输出 bbbb0 可看见答案,填上答案提交即可。
逆向过程
我们直接打开控制台,发现右键不能使用,直接 F12,页面就会直接跳转到首页了,问题不大,新起一个页面,先打开 F12 再进入页面即可,此时可以看到控制台在疯狂输出 div 标签,如下图所示:
这里比较尴尬的就是,虽然控制台在不断刷 div,但是对我们的输入没有太大影响,直接输入 bbbb[0]
,往上找一找,就可以看到答案了,或者直接输入 copy(bbbb[0])
就直接把答案复制到粘贴板了。如下图所示:
这个题不知道是什么原因,有可能是出题不太规范让我们直接钻空子了,作者的本意应该是让我们去掉这个无限刷 div 的情况,再去获取答案的,所以我们还是来分析一下源码,可以看到输出 div 的方法都在 5.js 里,直接点进去,是一个 setInterval 定时器方法:
处理方法有很多:
- Hook 定时器,将输出 div 的语句删除;
- 替换 JS 代码,直接将定时器或者输出 div 的语句删除;
- 直接控制台 Hook,将定时器方法置空。
本次我们直接在控制台 Hook,将定时器置空,这里注意,如果程序已经进入了定时器,再 Hook 是没用的,所以正确的做法是在定时器前,比如 let div
的地方下个断点,刷新网页,再在控制台输入 setInterval = function() {};
将定时器置空,再放开断点输入 bbbb[0]
获取答案:
我们注意到控制台有个报错 Uncaught SyntaxError: Identifier 'div' has already been declared
,这是因为在 JS 和页面的 HTML 里各自声明了一遍 div 导致的,在页面的 HTML 里再次声明时就会报错,对我们结果的获取没有影响。至此,本题分析完毕。提交答案成功:
相关文章
- 我仅用50 行 JavaScript 代码从头构建区块链,向你介绍区块链的工作原理
- Bootstrap Blazor 实战 Dialog 对话框组件快速入门
- Blazor组件自做十一 : File System Access 文件系统访问 组件
- Blazor组件自做十 : 光学字符识别 OCR 组件
- Maui Blazor 动态加载JS脚本报错处理记录 -- JS语法:数字分隔符 (1_000_000_000_000) 报错
- Web Bluetooth API 网站通过 JavaScript 与蓝牙设备进行通信 ,在Windows下水土不服解决办法
- Blazor 封装JS组件使用 Json 转换器修正大小写以及名称冲突问题
- CSS 的多列布局是什么?
- Blazor Bootstrap 组件库 Toast 轻量弹窗组件介绍
- Blazor Bootstrap 组件库地理定位/移动距离追踪组件介绍
- Blazor Bootstrap 组件库建立工程快速上手
- CSS 的浮动(float)布局是什么?
- Blazor Bootstrap 组件库语音组件介绍
- Vue 自定义组件实现v-model双向绑定
- vue的hash和history模式
- vue利用better-scroll插件实现分类页左右联动效果并实现点击左侧,滚动右侧
- 前端模块化
- ZXing Blazor 扫码组件 , ssr/wasm通用
- 工具 vs 业务的 offer,我选择了后者
- Element UI极简教程(1):Element UI的安装