From 9c6802cd8fab87eb78df32187f01040a06e78c13 Mon Sep 17 00:00:00 2001 From: Christian Frichot Date: Thu, 3 Jan 2013 19:25:00 +0800 Subject: [PATCH] Updated QR Code Extension - URLs can now be full, not just sub-domains #811 --- extensions/qrcode/qrcode.rb | 39 ++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/extensions/qrcode/qrcode.rb b/extensions/qrcode/qrcode.rb index ed7587529..791ffe40f 100644 --- a/extensions/qrcode/qrcode.rb +++ b/extensions/qrcode/qrcode.rb @@ -13,18 +13,43 @@ module Qrcode def self.pre_http_start(http_hook_server) require 'uri' - + + fullurls = [] + partialurls = [] + configuration = BeEF::Core::Configuration.instance - BeEF::Core::Console::Banners.interfaces.each do |int| - next if int == "localhost" or int == "127.0.0.1" - print_success "QRCode images available for interface: #{int}" + + configuration.get("beef.extension.qrcode.target").each do |target| + if target.lines.grep(/^https?:\/\//i).size > 0 + fullurls << target + else + partialurls << target + end + end + + if fullurls.size > 0 + print_success "Custom QRCode images available:" data = "" - configuration.get("beef.extension.qrcode.target").each do |target| - url = "http://#{int}:#{configuration.get("beef.http.port")}#{target}" - url = URI.escape(url,Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) + fullurls.each do |target| + url = URI.escape(target,Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) data += "https://chart.googleapis.com/chart?cht=qr&chs=#{configuration.get("beef.extension.qrcode.qrsize")}&chl=#{url}\n" end print_more data + + end + + if partialurls.size > 0 + BeEF::Core::Console::Banners.interfaces.each do |int| + next if int == "localhost" or int == "127.0.0.1" + print_success "QRCode images available for interface: #{int}" + data = "" + partialurls.each do |target| + url = "http://#{int}:#{configuration.get("beef.http.port")}#{target}" + url = URI.escape(url,Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) + data += "https://chart.googleapis.com/chart?cht=qr&chs=#{configuration.get("beef.extension.qrcode.qrsize")}&chl=#{url}\n" + end + print_more data + end end end