增加Web页面Copy的难度

今天刷中科大CTF的时候遇到十分罕见的禁止打开控台技术

https://heicore.com/
详细看这个黑曜石浏览器页面 有可能这个页面是为了CTF而存在

加载完成页面后,按F12打开控制台你会发现页面会突然情况并且console内容无限cls

因为里面包含了这段有趣的代码。别看代码量少,但是段代码也许需要学习Javascript很久才能写出这东西。

setInterval(() = > {
        var r = /./;
        r.toString = function () {
            eval("console.clear();");
            document.documentElement.innerHTML = '';
        };
        if (navigator.userAgent.includes('Safari') && !navigator.userAgent.includes('Edge'))
            console.log('%c', r);
    },
    50);

这段代码精髓就在于重写toString这个方法,一个经常用到的方法却对判断是否打开控制台起到至关重要的作用。
原因就在于浏览器在渲染文字的时候会调用toString输出变量内容。而控制台没打开就等于没渲染出字体,从而没有调用到清空页面代码。
同时配合console.log('%c',r)这段代进行输出内容到控制台,简直接近完美。

添加新评论

文章状态:已收录~