forked from ihciah/cookieinjector
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CookieInjector.user.js
122 lines (109 loc) · 3.65 KB
/
CookieInjector.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// ==UserScript==
// @name Cookie Injector
// @namespace BearsWithWings,ihciah
// @description Inject Cookie String From Wireshark Dump Into Any Webpage
// @version 2.0.2
// @dev modified by ihciah
// @include *
// @exclude https?://gmail.com/*
// @exclude https?://mail.google.com/*
// ==/UserScript==
//Anonomyous function wrapper
(function (){
//Ensure that there is only one instance of the cookieInjector Object
if(typeof this["cookieInjector"] == "undefined"){
cookieInjector = {};
}
//Make a local refrence to the cookie Injector object to save on typing
var cI = cookieInjector;
//Make the cookieInjector object globally viewable
unsafeWindow['cookieInjector'] = cI;
/**
* Cookie Injector createDiv function
* Sets up the cookie injector dialogue
*/
cI.createDiv = function(){
//Create the DIV to contain the Dialog
cI.dialog = document.createElement('div');
cI.dialog.id = "cookieInjectorDiv";
cI.dialog.innerHTML = "<div align='center'>Wireshark Cookie Dump:<br/><input type='text' id='cookieInjectorCookie'/><br/>Domain:<br/><input type='text' id='cookieInjectorDomain'/><br/><button onclick='cookieInjector.writeCookie();'>OK</button><button onclick='cookieInjector.hide();'>Cancel</button></div>";
cI.dialog.style.display = "none";
cI.dialog.style.position = "fixed";
cI.dialog.style.opacity = "0.9";
cI.dialog.style.top = "40%";
cI.dialog.style.background= "#DDDDDD";
cI.dialog.style.left = "40%";
cI.dialog.style.width = "20%";
cI.dialog.style.zIndex = "99999";
document.body.appendChild(cI.dialog);
cI.visible = false;
}
/**
* Show the dialog
*/
cI.show = function(){
if(!cI.dialog) {
cI.createDiv();
}
cI.dialog.style.display = "block";
cI.visible = true;
}
/**
* Hide the dialog
*/
cI.hide = function(){
cI.dialog.style.display = "none";
cI.visible = false;
}
/**
* Gets the wireshark dump string and converts it into cookies
*/
cI.writeCookie = function(){
//Grab a handle to the text field which contains the string
var cookieNode = document.getElementById('cookieInjectorCookie');
var cookieText = cI.cleanCookie(cookieNode.value);
cookieNode.value = "";
var cookieNodeDomain = document.getElementById('cookieInjectorDomain').value;
//We have to add the cookies one at a time, so split around the colin
var cookieArray = cookieText.split(";");
for(var x=0; x<cookieArray.length; x++){
//We want the path to be the root, the host is filled in automatically
//since we are on the same webpage that we captured the cookies on
document.cookie = cookieArray[x]+";domain="+cookieNodeDomain+"; path=/";
}
alert("All Cookies Have Been Written");
cI.hide();
}
/**
* Do a little big of cleanup on the cookie string, Mostly we are looking
* To get rid of the "Cookie: " string that Wireshark prepends to the cookie string
*/
cI.cleanCookie = function(cookieText){
var cookie = cookieText.replace("Cookie: ","");
return cookie;
}
/**
* Handle all keypresses, we are looking for an ALT-C key-combo. Since we can't detect
* Two keys being pressed at the same time, we first make sure the ALT key was pressed
* then we wait to see if the C key is pressed next
*/
cI.keyPress = function (e){
//Check to see if "C" is pressed after ALT
if(e.keyCode == 67 && cI.ctrlFire){
if(!cI.visible){
cI.show();
}else{
cI.hide();
}
}
//Make sure the Alt key was previously depressed
if(e.keyCode == 18){
cI.ctrlFire = true;
}else{
cI.ctrlFire = false;
}
}
//Capture all onkeydown events, so we can filter for our key-combo
cI.visible = false;
window.addEventListener('keydown', cI.keyPress,'false');
})();