分析某個(gè)網(wǎng)站時(shí)候,比較詭異,打開(kāi)console 時(shí)候,這樣:
網(wǎng)站被一塊“遮罩”擋住了,處于調(diào)試狀態(tài),不能繼續(xù)交互,跟下原因,這樣的代碼:
function isConsoleOpen() {
var startTime = new Date();
debugger ;var endTime = new Date();
return endTime - startTime > 100;
}
setInterval(()=>{
if (isConsoleOpen()) {
window.location.href = '';
}
}
, 400);
該站的某個(gè)js 腳本,設(shè)置了定時(shí)器,定時(shí)在檢測(cè),如果console 是打開(kāi)狀態(tài),則把調(diào)試狀態(tài)打開(kāi)windows.location 設(shè)置為"",判斷是否打開(kāi)console 邏輯為插入debuger,debuger 前后計(jì)算時(shí)間差是否大于一定時(shí)間。
這設(shè)置是防君子不防小人了,最多防防小白而已,沒(méi)有太大的意義。會(huì)打開(kāi)console的開(kāi)發(fā)者,難道不會(huì)繞過(guò)這個(gè)限制?
盤(pán)點(diǎn)下繞過(guò)這個(gè)debuger 的N 種方法右鍵這個(gè)debuger,在彈出菜單點(diǎn)擊“add script to ignore list”
如果檢測(cè)出邏輯是在定時(shí)器內(nèi)執(zhí)行的,直接把頁(yè)面的所有定時(shí)器都關(guān)閉。在 console 內(nèi)執(zhí)行下面腳本即可。for (let i = 1; i < 99999; i++) window.clearInterval(i);
這個(gè)方法有個(gè)缺點(diǎn),如果某些網(wǎng)頁(yè)可能會(huì)在外面重新加載一下js,會(huì)重新開(kāi)啟定時(shí)器,所以不一定每次都能設(shè)置成功。方案3:通過(guò)濾廣告插件,禁止這個(gè)js 加載禁止廣告的插件較多,使用類(lèi)似Adblock Plus這樣的 禁廣告插件,把這個(gè)js 文件加入過(guò)濾列表即可,Adblock Plus設(shè)置如下:配置后,這個(gè)頁(yè)面會(huì)被插件禁止掉,刷新下頁(yè)面可以完美交互。如下也可以看到該腳本被插件禁止掉了。方案4:使用Fiddler、Burpsuite 對(duì)js 文件進(jìn)行攔截(修改)這些網(wǎng)絡(luò)工具,功能較為強(qiáng)大,可以對(duì)網(wǎng)絡(luò)請(qǐng)求各種騷操作,比如對(duì)請(qǐng)求體做修改也可以,如《一次某大廈網(wǎng)站的WEBSHELL 記錄》測(cè)試就是用到fiddler。缺點(diǎn),F(xiàn)iddler mac版本不太好用,Burpsuite是收費(fèi)軟件。總之,對(duì)于這種功能的繞過(guò)方法很多,最省時(shí)省力就是用方法1了,第三方工具或者插件都不用裝,點(diǎn)擊幾下鼠標(biāo),搞定。
該文章在 2023/11/28 11:49:33 編輯過(guò)