Cookie Injector

Inject Cookie String From Wireshark Dump Into Any Webpage

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==UserScript==
// @name           Cookie Injector
// @namespace      BearsWithWings
// @description    Inject Cookie String From Wireshark Dump Into Any Webpage
// @version 2.0
// @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/><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 = "";
		
		//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]+"; 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');
})();