// // Copyright (c) 2006-2015 Wade Alcorn - wade@bindshell.net // Browser Exploitation Framework (BeEF) - http://beefproject.com // See the file 'doc/COPYING' for copying permission // /*! * @literal object: beef.browser.cookie * * Provides fuctions for working with cookies. * Several functions adopted from http://techpatterns.com/downloads/javascript_cookies.php * Original author unknown. * */ beef.browser.cookie = { setCookie: function (name, value, expires, path, domain, secure) { var today = new Date(); today.setTime( today.getTime() ); if ( expires ) { expires = expires * 1000 * 60 * 60 * 24; } var expires_date = new Date( today.getTime() + (expires) ); document.cookie = name + "=" +escape( value ) + ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + ( ( path ) ? ";path=" + path : "" ) + ( ( domain ) ? ";domain=" + domain : "" ) + ( ( secure ) ? ";secure" : "" ); }, getCookie: function(name) { var a_all_cookies = document.cookie.split( ';' ); var a_temp_cookie = ''; var cookie_name = ''; var cookie_value = ''; var b_cookie_found = false; for ( i = 0; i < a_all_cookies.length; i++ ) { a_temp_cookie = a_all_cookies[i].split( '=' ); cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, ''); if ( cookie_name == name ) { b_cookie_found = true; if ( a_temp_cookie.length > 1 ) { cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') ); } return cookie_value; break; } a_temp_cookie = null; cookie_name = ''; } if ( !b_cookie_found ) { return null; } }, deleteCookie: function (name, path, domain) { if ( this.getCookie(name) ) document.cookie = name + "=" + ( ( path ) ? ";path=" + path : "") + ( ( domain ) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT"; }, veganLol: function (){ var to_hell= ''; var min = 17; var max = 25; var lol_length = Math.floor(Math.random() * (max - min + 1)) + min; var grunt = function(){ var moo = Math.floor(Math.random() * 62); var char = ''; if(moo < 36){ char = String.fromCharCode(moo + 55); }else{ char = String.fromCharCode(moo + 61); } if(char != ';' && char != '='){ return char; }else{ return 'x'; } }; while(to_hell.length < lol_length){ to_hell += grunt(); } return to_hell; }, hasSessionCookies: function (name){ this.setCookie( name, beef.browser.cookie.veganLol(), '', '/', '', '' ); cookiesEnabled = (this.getCookie(name) == null)? false:true; this.deleteCookie(name, '/', ''); return cookiesEnabled; }, hasPersistentCookies: function (name){ this.setCookie( name, beef.browser.cookie.veganLol(), 1, '/', '', '' ); cookiesEnabled = (this.getCookie(name) == null)? false:true; this.deleteCookie(name, '/', ''); return cookiesEnabled; } }; beef.regCmp('beef.browser.cookie');