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 @@
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