Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
beefproject
GitHub Repository: beefproject/beef
Path: blob/master/core/main/client/browser/cookie.js
1154 views
1
//
2
// Copyright (c) 2006-2025 Wade Alcorn - [email protected]
3
// Browser Exploitation Framework (BeEF) - https://beefproject.com
4
// See the file 'doc/COPYING' for copying permission
5
//
6
7
/**
8
* Provides fuctions for working with cookies.
9
* Several functions adopted from http://techpatterns.com/downloads/javascript_cookies.php
10
* Original author unknown.
11
* @namespace beef.browser.cookie
12
*/
13
beef.browser.cookie = {
14
15
/** @memberof beef.browser.cookie */
16
setCookie: function (name, value, expires, path, domain, secure)
17
{
18
19
var today = new Date();
20
today.setTime( today.getTime() );
21
22
if ( expires )
23
{
24
expires = expires * 1000 * 60 * 60 * 24;
25
}
26
var expires_date = new Date( today.getTime() + (expires) );
27
28
document.cookie = name + "=" +escape( value ) +
29
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
30
( ( path ) ? ";path=" + path : "" ) +
31
( ( domain ) ? ";domain=" + domain : "" ) +
32
( ( secure ) ? ";secure" : "" );
33
},
34
/** @memberof beef.browser.cookie */
35
getCookie: function(name)
36
{
37
var a_all_cookies = document.cookie.split( ';' );
38
var a_temp_cookie = '';
39
var cookie_name = '';
40
var cookie_value = '';
41
var b_cookie_found = false;
42
43
for ( i = 0; i < a_all_cookies.length; i++ )
44
{
45
a_temp_cookie = a_all_cookies[i].split( '=' );
46
cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
47
if ( cookie_name == name )
48
{
49
b_cookie_found = true;
50
if ( a_temp_cookie.length > 1 )
51
{
52
cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
53
}
54
return cookie_value;
55
break;
56
}
57
a_temp_cookie = null;
58
cookie_name = '';
59
}
60
if ( !b_cookie_found )
61
{
62
return null;
63
}
64
},
65
/** @memberof beef.browser.cookie */
66
deleteCookie: function (name, path, domain)
67
{
68
if ( this.getCookie(name) ) document.cookie = name + "=" +
69
( ( path ) ? ";path=" + path : "") +
70
( ( domain ) ? ";domain=" + domain : "" ) +
71
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
72
},
73
74
/** @memberof beef.browser.cookie */
75
cookieValueRandomizer: function (){
76
var to_hell= '';
77
var min = 17;
78
var max = 25;
79
var lol_length = Math.floor(Math.random() * (max - min + 1)) + min;
80
81
var grunt = function(){
82
var moo = Math.floor(Math.random() * 62);
83
var char = '';
84
if(moo < 36){
85
char = String.fromCharCode(moo + 55);
86
}else{
87
char = String.fromCharCode(moo + 61);
88
}
89
if(char != ';' && char != '='){
90
return char;
91
}else{
92
return 'x';
93
}
94
};
95
96
while(to_hell.length < lol_length){
97
to_hell += grunt();
98
}
99
return to_hell;
100
},
101
/** @memberof beef.browser.cookie */
102
hasSessionCookies: function (name){
103
this.setCookie( name, beef.browser.cookie.cookieValueRandomizer(), '', '/', '', '' );
104
105
cookiesEnabled = (this.getCookie(name) == null)? false:true;
106
this.deleteCookie(name, '/', '');
107
return cookiesEnabled;
108
109
},
110
/** @memberof beef.browser.cookie */
111
hasPersistentCookies: function (name){
112
this.setCookie( name, beef.browser.cookie.cookieValueRandomizer(), 1, '/', '', '' );
113
114
cookiesEnabled = (this.getCookie(name) == null)? false:true;
115
this.deleteCookie(name, '/', '');
116
return cookiesEnabled;
117
118
}
119
120
};
121
122
beef.regCmp('beef.browser.cookie');
123