62 lines
1.7 KiB
Ruby
62 lines
1.7 KiB
Ruby
#
|
|
# Copyright (c) 2006-2019 Wade Alcorn - wade@bindshell.net
|
|
# Browser Exploitation Framework (BeEF) - http://beefproject.com
|
|
# See the file 'doc/COPYING' for copying permission
|
|
#
|
|
require 'test/unit'
|
|
|
|
class TC_Extensions < Test::Unit::TestCase
|
|
|
|
def setup
|
|
$:.unshift(File.join(File.expand_path(File.dirname(__FILE__)), '.'))
|
|
$root_dir = File.expand_path('../../../../', __FILE__)
|
|
end
|
|
|
|
#
|
|
# Test that extensions are loading properly
|
|
#
|
|
def test_extensions
|
|
assert_nothing_raised do
|
|
BeEF::Extensions.load
|
|
end
|
|
|
|
enabled_extensions = BeEF::Core::Configuration.instance.get('beef.extension').select {|k,v|
|
|
v['enable'] == true
|
|
}
|
|
|
|
enabled_extensions.each do |k,v|
|
|
assert(v.has_key?('name'))
|
|
assert(v.has_key?('enable'))
|
|
assert(v.has_key?('loaded'))
|
|
end
|
|
|
|
enabled_extensions.each do |k,v|
|
|
assert(v['loaded'], 'Extension is enabled but was not loaded')
|
|
end
|
|
end
|
|
|
|
def test_safe_client_debug_log
|
|
Dir['../../extensions/**/*.js'].each do |path|
|
|
next if /extensions\/admin_ui/.match(path) # skip this directory
|
|
next unless File.file?(path)
|
|
File.open(path) do |f|
|
|
f.grep(/\bconsole\.log\W*\(/m) do |line|
|
|
assert(false, "Function 'console.log' used instead of 'beef.debug' in extension: " + path + ':' + line)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_safe_variable_decleration
|
|
Dir['../../extensions/**/*.js'].each do |path|
|
|
next unless File.file?(path)
|
|
File.open(path) do |f|
|
|
f.grep(/\blet\W+[a-zA-Z0-9_\.]+\W*=/) do |line|
|
|
assert(false, "Variable decleration with 'let' used instead of 'var' in extension: " + path + ':' + line)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|