diff --git a/extensions/demos/api.rb b/extensions/demos/api.rb index d8e41035d..d09a4b86e 100644 --- a/extensions/demos/api.rb +++ b/extensions/demos/api.rb @@ -6,15 +6,26 @@ module BeEF module Extension module Demos - + module RegisterHttpHandlers - + BeEF::API::Registrar.instance.register(BeEF::Extension::Demos::RegisterHttpHandlers, BeEF::API::Server, 'mount_handler') - + def self.mount_handler(beef_server) - # mount the handler to support the demos - dir = File.dirname(__FILE__)+'/html/' - beef_server.mount('/demos/', Rack::File.new(dir)) + # mount everything in html directory to /demos/ + path = File.dirname(__FILE__)+'/html/' + files = Dir[path+'**/*'] + files.each do |f| + # don't follow symlinks + next if File.symlink?(f) + mount_path = '/demos/'+f.sub(path,'') + if File.extname(f) == '.html' + # use handler to mount HTML templates + beef_server.mount(mount_path, BeEF::Extension::Demos::Handler.new(f)) + else + beef_server.mount(mount_path, Rack::File.new(f)) + end + end end end end diff --git a/extensions/demos/extension.rb b/extensions/demos/extension.rb index d387c9f0f..d196b0f87 100644 --- a/extensions/demos/extension.rb +++ b/extensions/demos/extension.rb @@ -13,10 +13,11 @@ module Demos @full_name = 'demonstrations' - @description = 'list of demonstration pages for beef' + @description = 'Demonstration pages for BeEF' end end end require 'extensions/demos/api' +require 'extensions/demos/handler' diff --git a/extensions/demos/html/basic.html b/extensions/demos/html/basic.html index d6893e718..d0349c770 100644 --- a/extensions/demos/html/basic.html +++ b/extensions/demos/html/basic.html @@ -8,7 +8,7 @@ BeEF Basic Demo diff --git a/extensions/demos/html/butcher/index.html b/extensions/demos/html/butcher/index.html index 269f44b7f..5bd60a9c8 100644 --- a/extensions/demos/html/butcher/index.html +++ b/extensions/demos/html/butcher/index.html @@ -29,7 +29,7 @@
diff --git a/extensions/demos/html/butcher/secret_page.html b/extensions/demos/html/butcher/secret_page.html deleted file mode 100644 index abf4d9b15..000000000 --- a/extensions/demos/html/butcher/secret_page.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - Secret Page - - -

Secret page

- -

- This page is not hooked by beef. However you should still be capable of accessing it - using the Requester. -

- - \ No newline at end of file diff --git a/extensions/demos/html/clickjacking/clickjack_attack.html b/extensions/demos/html/clickjacking/clickjack_attack.html index c8c37f41e..2527db5a2 100644 --- a/extensions/demos/html/clickjacking/clickjack_attack.html +++ b/extensions/demos/html/clickjacking/clickjack_attack.html @@ -111,7 +111,7 @@ font-size:20px; diff --git a/extensions/demos/html/plain.html b/extensions/demos/html/plain.html index b9297c620..b0dc32f28 100644 --- a/extensions/demos/html/plain.html +++ b/extensions/demos/html/plain.html @@ -4,7 +4,7 @@ See the file 'doc/COPYING' for copying permission --> diff --git a/extensions/demos/html/report.html b/extensions/demos/html/report.html index 860f26594..9ab41c24f 100755 --- a/extensions/demos/html/report.html +++ b/extensions/demos/html/report.html @@ -7,7 +7,7 @@ Loading