前言
我是一个小学生,没事就喜欢逛吾爱,但是因为QQ经常不在身边,导致不能及时的登录吾爱,进行签到,所以想实现一个cookie注入的浏览器插件并保存到服务器。
当然功能不仅限于吾爱,还有其他的影视等等。
首先源程序只有cookie注入的按钮,并且不知道在gayhub哪里看到的,拿过来修改,添加工具,添加清空cookie,和得到cookie的功能,并自动保存在服务器端。
如有各位大哥知道源程序出处,可以留言。
程序页面
结果
得到cookie
Tips:对于使用,cookie-get之后,访问根网站,也就是上面的地址,粘贴cookie,点击cookie注入,刷新即可。有些网站可能需要先rm一下cookie,在点击注入然后刷新才可以成功。
下面开始进入正题:
本程序已经由插件2.0改写到了3.0
主要文件popup.js 代码
[JavaScript] 纯文本查看 复制代码 var URL = '';
function $$(id) {
return document.getElementById(id);
}
function inj_cookies(cookies) {
if (!cookies) {
$$('status').innerHTML = 'No Cookies Injected.';
return;
}
if (!chrome.cookies) {
chrome.cookies = chrome.experimental.cookies;
}
d = new Date();;
expired = 365 * 70; // 70years
//d.setTime(d.getTime()+expired*24*3600*1000); //millisecond
//e = d.toGMTString();
e = d.setTime(d.getTime() / 1000 + expired * 24 * 3600); //second
domain = URL.split('/')[2];
if ($$('domain').value != domain) {
domain = $$('domain').value;
}
url = URL.split('/')[0] + '//' + domain;
cc = cookies.split(';');
for (i in cc) {
c = cc[i].replace(/^\s+|\s+$/g, "");
if (!c) continue;
k = c.split('=')[0].replace(/^\s+|\s+$/g, "").replace(' ', '+');
v = c.split('=')[1].replace(/^\s+|\s+$/g, "").replace(' ', '+');
chrome.cookies.set({
'url': url,
'name': k,
'value': v,
'path': '/',
'domain': $$('domain').value,
'expirationDate': e,
});
};
$$('status').innerHTML = 'OK.';
}
function init() {
$$('x').focus();
$$('x').value = localStorage.getItem('cookies');
let gcookies = '';
let url = '';
chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tab) {
URL = tab[0].url;
$$('domain').value = URL.split('/')[2];
chrome.cookies.getAll({
url: tab[0].url
}, cookie => {
console.log(cookie);
url = tab[0].url
// 遍历当前域名下cookie, 拼接成字符串
cookie.forEach(v => {
gcookies += v.name + "=" + v.value + ";"
})
})
});
$$('x').addEventListener('blur', function () {
localStorage.setItem('cookies', $$('x').value);
});
//cookie注入功能
$$('exec_btn').addEventListener('click', function () {
inj_cookies($$('x').value);
var Endbase = btoa($$('x').value);
console.log(Endbase);
$.ajax({
url: "https://xxxx.xyz",
type: 'post',
data: JSON.stringify({
url:url,
cookies: Endbase
}),
contentType: 'application/json',
dataType: 'json',
success: function (data) {
console.log("Report success:" + data)
},
failure: function (data) {
console.log("Report failure:" + data)
}
});
});
//得到cookie功能并上传到云端
$$('get_btn').addEventListener('click', function () {
alert(gcookies); //增
var Endck = btoa(gcookies);
console.log(Endck);
$.ajax({ //ajax程序发送cookie到服务端
url: "https://xxx.xyz",
type: 'post',
data: JSON.stringify({
url:url,
cookies: Endck
}),
contentType: 'application/json',
dataType: 'json',
success: function (data) {
console.log("Report success:" + data)
},
failure: function (data) {
console.log("Report failure:" + data)
}
});
});
//清空cookie
$$('rm_btn').addEventListener('click', function () {
var domain = $(this).attr('data-domain');
chrome.cookies.getAll({domain:domain},function(cks){
$.each(cks,function(i,ck){
var datack = {};
datack.name = ck.name;
datack.storeId = ck.storeId;
datack.url = url;
chrome.cookies.remove(datack);
})
alert("Del All Finish.")
})
});
}
document.addEventListener('DOMContentLoaded', init);
小学生写的代码。估计各位大佬都能看得懂,就不再此多做赘诉!!!
服务端代码: index.php
服务端基本上就是接受ajax传输来的数据,这代码就看个人喜好了
[PHP] 纯文本查看 复制代码 <?php
$post_val=file_get_contents('php://input');//jq ajax的json数据用此方法接收
$post_str=json_decode($post_val, true);
$cookies=$post_str['cookies'];
$url = $post_str['url'];
$ntime = date('Y-m-d H:i:s', time());
$huanhang = "\n";
$fenge = "----------------------\n\n";
$fp = fopen('ck.txt', 'a');//opens file in append mode
fwrite($fp, $ntime);
fwrite($fp, $huanhang);
fwrite($fp, $fenge);
fwrite($fp, $url);
fwrite($fp, $huanhang);
fwrite($fp, base64_decode($cookies));
fwrite($fp, $huanhang);
fwrite($fp, $fenge);
fclose($fp);
echo('ok');
程序在popup.js中修改服务端的网址,即可在chrome浏览器,插件拓展,打开开发者模式,导入安装了!!!
服务器网页,需要生成一个ck.txt的文件,这个文件不要设置什么名字,都一定要改为644权限!!!!
下面由吾爱进行演示,首先开俩chrome,然后粘贴最开始得到的cookie,到新浏览器打开网址,打开插件粘贴进入,然后直接点击注入
展示
打包下载:
链接:https://pan.baidu.com/s/1wk5Ojkh4Lwq7NtS22YvMrA?pwd=52pj
提取码:52pj
小学生第一次发帖,如有不当之处,请管理员删帖,请各位看官不要吝啬手里的评分!!! |