原理
通過油猴插件重寫操作Cookie的get和set操作
通過指定Cookie名動態進入derbugger模式
代碼
// ==UserScript== // @name Hook Cookie // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @include * // @grant none // @run-at document-start // ==/UserScript== (function () { 'use strict'; var cookie_cache = document.cookie; Object.defineProperty(document, ' cookie', { get: function () { return cookie_cache; }, set: function (val) { console.log('Setting cookie', val); // 填寫cookie名 if (val.indexOf('cookie名') != -1) { debugger; } var cookie = val.split(";")[0]; var ncookie = cookie.split("="); var flag = false; var cache = cookie_cache.split("; "); cache = cache.map(function (a) { if (a.split("=")[0] === ncookie[0]) { flag = true; return cookie; } return a; }) cookie_cache = cache.join("; "); if (!flag) { cookie_cache += cookie + "; "; } return cookie_cache; } }); })();
以百度搜索為例,定位cookie中H_PS_645EC的生成方式,將H_PS_645EC填寫金cookie名的位置
保存腳本並打開開關,清空cookie后重新刷新頁面,成功斷下,且值已經生成了
往上跟蹤堆棧就可以定位到生成代碼,然后就可以提取關鍵代碼去調試了
當我們不修改cookie名他會把所有的cookie打印出來