绕过某网站通过 JavaScript debuger 限制分析的N 种方法
|
admin
2023年11月28日 11:49
本文热度 488
|
分析某个网站时候,比较诡异,打开console 时候,这样:
网站被一块“遮罩”挡住了,处于调试状态,不能继续交互,跟下原因,这样的代码:
function isConsoleOpen() {
var startTime = new Date();
debugger ;var endTime = new Date();
return endTime - startTime > 100;
}
setInterval(()=>{
if (isConsoleOpen()) {
window.location.href = '';
}
}
, 400);
该站的某个js 脚本,设置了定时器,定时在检测,如果console 是打开状态,则把调试状态打开windows.location 设置为"",判断是否打开console 逻辑为插入debuger,debuger 前后计算时间差是否大于一定时间。
这设置是防君子不防小人了,最多防防小白而已,没有太大的意义。会打开console的开发者,难道不会绕过这个限制?
右键这个debuger,在弹出菜单点击“add script to ignore list”
如果检测出逻辑是在定时器内执行的,直接把页面的所有定时器都关闭。for (let i = 1; i < 99999; i++) window.clearInterval(i);
这个方法有个缺点,如果某些网页可能会在外面重新加载一下js,会重新开启定时器,所以不一定每次都能设置成功。禁止广告的插件较多,使用类似Adblock Plus这样的 禁广告插件,把这个js 文件加入过滤列表即可,Adblock Plus设置如下:配置后,这个页面会被插件禁止掉,刷新下页面可以完美交互。如下也可以看到该脚本被插件禁止掉了。方案4:使用Fiddler、Burpsuite 对js 文件进行拦截(修改)缺点,Fiddler mac版本不太好用,Burpsuite是收费软件。总之,对于这种功能的绕过方法很多,最省时省力就是用方法1了,第三方工具或者插件都不用装,点击几下鼠标,搞定。
该文章在 2023/11/28 11:49:33 编辑过