diff --git a/core/main/client/browser.js b/core/main/client/browser.js index 4ae01b29e..72e1b60ee 100644 --- a/core/main/client/browser.js +++ b/core/main/client/browser.js @@ -543,6 +543,8 @@ beef.browser = { var vbscript_enabled=(beef.browser.hasVBScript())? "Yes" : "No"; var has_flash = (beef.browser.hasFlash())? "Yes" : "No"; var has_googlegears=(beef.browser.hasGoogleGears())? "Yes":"No"; + var has_session_cookies = (beef.browser.cookie.hasSessionCookies("cookie"))? "Yes":"No"; + var has_persistent_cookies = (beef.browser.cookie.hasPersistentCookies("cookie"))? "Yes":"No"; if(browser_name) details["BrowserName"] = browser_name; if(browser_version) details["BrowserVersion"] = browser_version; @@ -560,6 +562,8 @@ beef.browser = { if(vbscript_enabled) details['VBScriptEnabled'] = vbscript_enabled if(has_flash) details['HasFlash'] = has_flash if(has_googlegears) details['HasGoogleGears'] = has_googlegears + if(has_session_cookies) details["hasSessionCookies"] = has_session_cookies; + if(has_persistent_cookies) details["hasPersistentCookies"] = has_persistent_cookies; return details; }, diff --git a/extensions/admin_ui/controllers/modules/modules.rb b/extensions/admin_ui/controllers/modules/modules.rb index 053ba104d..283dd936f 100644 --- a/extensions/admin_ui/controllers/modules/modules.rb +++ b/extensions/admin_ui/controllers/modules/modules.rb @@ -297,6 +297,36 @@ class Modules < BeEF::Extension::AdminUI::HttpController summary_grid_hash['results'].push(page_name_row) # add the row end + + # set and add the return values for hasSessionCookies + has_session_cookies = BD.get(zombie_session, 'hasSessionCookies') + if not has_session_cookies.nil? + encoded_has_session_cookies = CGI.escapeHTML(has_session_cookies) + encoded_has_session_cookies_hash = { 'Session Cookies' => encoded_has_session_cookies } + + page_name_row = { + 'category' => 'Browser Hook Initialisation', + 'data' => encoded_has_session_cookies_hash, + 'from' => 'Initialisation' + } + + summary_grid_hash['results'].push(page_name_row) # add the row + end + + # set and add the return values for hasPersistentCookies + has_persistent_cookies = BD.get(zombie_session, 'hasPersistentCookies') + if not has_persistent_cookies.nil? + encoded_has_persistent_cookies = CGI.escapeHTML(has_persistent_cookies) + encoded_has_persistent_cookies_hash = { 'Persistent Cookies' => encoded_has_persistent_cookies } + + page_name_row = { + 'category' => 'Browser Hook Initialisation', + 'data' => encoded_has_persistent_cookies_hash, + 'from' => 'Initialisation' + } + + summary_grid_hash['results'].push(page_name_row) # add the row + end @body = summary_grid_hash.to_json end diff --git a/extensions/initialization/handler.rb b/extensions/initialization/handler.rb index 1b099eda1..943421636 100644 --- a/extensions/initialization/handler.rb +++ b/extensions/initialization/handler.rb @@ -157,6 +157,22 @@ module Initialization BD.set(session_id, 'HasGoogleGears', has_googlegears) end + # get and store whether the browser has session cookies enabled + has_session_cookies = get_param(@data['results'], 'hasSessionCookies') + if has_session_cookies.nil? + raise WEBrick::HTTPStatus::BadRequest, "Invalid value for hasSessionCookies" + else + BD.set(session_id, 'hasSessionCookies', has_session_cookies) + end + + # get and store whether the browser has persistent cookies enabled + has_persistent_cookies = get_param(@data['results'], 'hasPersistentCookies') + if has_persistent_cookies.nil? + raise WEBrick::HTTPStatus::BadRequest, "Invalid value for hasPersistentCookies" + else + BD.set(session_id, 'hasPersistentCookies', has_persistent_cookies) + end + end def get_param(query, key)