当前位置: 首页 > 后端技术 > Python

【JS逆向工程100例】网罗哲反爬实践平台第5题:控制台反调试

时间:2023-03-25 21:00:53 Python

关注微信公众号:爬虫K哥,继续分享爬虫进阶、JS等技术干货/安卓逆向工程!声明本文所有内容仅供学习交流。抓拍内容、敏感网址、数据接口均已脱敏处理,严禁用于商业或非法用途。否则,由此产生的一切后果与作者无关。侵权请联系我立即删除!反向目标目标:网路者反爬虫实践平台问题5:控制台反调试链接:http://spider.wangluozhe.com/...简介:打开浏览器控制台,控制台console位置输出bbbb[0]即可查看答案,填写答案并提交。逆向过程,我们直接打开控制台,发现右键不能用了。只要按F12,页面就会直接跳转到首页。问题不大。新建一个页面,先打开F12再进入页面,可以看到控制台在疯狂输出div标签,如下图:对我们的输入没有太大影响。直接输入bbbb[0],往上看,就可以看到答案,或者直接输入copy(bbbb[0]),把答案复制到剪贴板。如下图:不知道这个问题的原因。可能是题目不够规范,让我们钻了空子。作者的本意应该是让我们摆脱无限滑动的div,然后得到答案。所以我们分析一下源码,可以看到输出div的方法都在5.js里面,点进去就行,是一个setInterval定时器方法:处理方法有很多:Hook定时器,删除输出div的语句;替换JS代码,直接删除定时器或输出div的语句;直接consoleHook,清空定时器方法。这次我们直接在console中Hook,将timer设置为空。这里注意,如果程序已经进入了定时器,那么Hooking就没有用了,所以正确的做法是把next放在定时器的前面,比如让div断点,刷新网页,然后输入setInterval=function(){};在控制台设置定时器为空,然后解除断点输入bbbb[0]得到答案:我们注意到控制台报错UncaughtSyntaxError:Identifier'div'hasalreadybeendeclared,这是造成的通过在页面的JS和HTML中声明一次div,在页面的HTML中再次声明时会报错,对我们的结果没有影响。至此,本题分析完毕。提交答案成功: