油猴Tampermonkey监听所有请求,绕过seesion
前因后果
原因是要白嫖一个网站的接口,这个接口的页面入口被隐藏掉了,不能通过页面调用,幸好之前有想过逆向破解通过账号密码模拟登录后拿到token,请求该接口,不过网站有很多混淆代码,调试的头大了就放弃了;那么换个思路,登录成功后必定有个token存在seesion,那么我怎么拿呢,肯定在登录成功后,拿的响应的数据set到localStorage上,在写个点击监听器,实时把localStorage的token发到后端保存起来,那来实践下。
脚本编写
javascript
// ==UserScript==
// @name chek
// @namespace http://tampermonkey.net/
// @version 2024-11-15
// @description try to take over the world!
// @author You
// @match *://*/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @run-at document-start
// @grant unsafeWindow
// @grant GM_xmlhttpRequest
// ==/UserScript==
重要参数
@run-at document-start //文档加载完成开始录制
@grant unsafeWindow //windwos权限产生
@grant GM_xmlhttpRequest //获取请求能力权限
关键代码:
javascript
(function() {
function addXMLRequestCallback(callback){
//实现逻辑省略.......
//需要完整的例子关注 ++++++++++++++++++++++++++
}
'use strict';
// 确保脚本只绑定一次点击事件
window.addEventListener('load', function() {
document.body.addEventListener('click', function() {
var api_token = localStorage.getItem('API_TOKEN')
console.log(api_token)
GM_xmlhttpRequest({
//这里发送请求到自己服务接口 把token固化下来
});
});
});
addXMLRequestCallback( function( xhr ) {
xhr.addEventListener("load", function(){
//判断页面加载状态的
if ( xhr.readyState == 4 && xhr.status == 200 ) {
console.log(xhr.responseURL);
//判断是不是自己想要监听的URl地址 字符串就是 你需要监听的地址
if ( xhr.responseURL.includes("返回token的url") ) {
var data = JSON.parse(xhr.response)
console.log('data2 :' + data.data.accessToken);
localStorage.setItem('API_TOKEN',data.data.accessToken)
}
}
});
});
})();
看↓↓↓方格或搜索: 码猿趣事
,回复关键字:monkey脚本
持续更新中~