Sha256: fef17dc8c4b04eab7ac4019e66f15280d905a77d4e9b3754c16da803db62076c

Contents?: true

Size: 1.68 KB

Versions: 100

Compression:

Stored size: 1.68 KB

Contents

# frozen_string_literal: true

require 'base64'

module PWN
  module Plugins
    # This plugin Base64 encodes/decodes AuthN credentials for passing to a ''Basic''
    # authorization HTTP header.
    module BasicAuth
      # Supported Method Parameters::
      # PWN::Plugins::BasicAuth.encode(
      #   username: 'optional username',
      #   password: 'optional password'
      # )

      public_class_method def self.encode(opts = {})
        basic_user = opts[:username].to_s.chomp unless opts[:username].nil?
        basic_pass = opts[:password].to_s.chomp unless opts[:password].nil?
        base64_str = "#{basic_user}:#{basic_pass}"
        @base64_encoded_auth = Base64.strict_encode64(base64_str).to_s.chomp
        @base64_encoded_auth
      rescue StandardError => e
        raise e
      end

      # Supported Method Parameters::
      # PWN::Plugins::BasicAuth.decode(
      #   base64_str: 'required base64 encoded string'
      # )

      public_class_method def self.decode(opts = {})
        base64_str = opts[:base64_str]
        @base64_decoded_auth = Base64.decode64(base64_str)
        @base64_decoded_auth
      rescue StandardError => e
        raise e
      end

      # Author(s):: 0day Inc. <support@0dayinc.com>

      public_class_method def self.authors
        "AUTHOR(S):
          0day Inc. <support@0dayinc.com>
        "
      end

      # Display Usage for this Module

      public_class_method def self.help
        puts "USAGE:
          #{self}.encode(
            username: 'optional username',
            password: 'optional password'
          )

          #{self}.decode(base64_str: 'base64 encoded string')

          #{self}.authors
        "
      end
    end
  end
end

Version data entries

100 entries across 100 versions & 1 rubygems

Version Path
pwn-0.5.250 lib/pwn/plugins/basic_auth.rb
pwn-0.5.249 lib/pwn/plugins/basic_auth.rb
pwn-0.5.248 lib/pwn/plugins/basic_auth.rb
pwn-0.5.247 lib/pwn/plugins/basic_auth.rb
pwn-0.5.246 lib/pwn/plugins/basic_auth.rb
pwn-0.5.245 lib/pwn/plugins/basic_auth.rb
pwn-0.5.244 lib/pwn/plugins/basic_auth.rb
pwn-0.5.243 lib/pwn/plugins/basic_auth.rb
pwn-0.5.242 lib/pwn/plugins/basic_auth.rb
pwn-0.5.241 lib/pwn/plugins/basic_auth.rb
pwn-0.5.240 lib/pwn/plugins/basic_auth.rb
pwn-0.5.239 lib/pwn/plugins/basic_auth.rb
pwn-0.5.238 lib/pwn/plugins/basic_auth.rb
pwn-0.5.237 lib/pwn/plugins/basic_auth.rb
pwn-0.5.236 lib/pwn/plugins/basic_auth.rb
pwn-0.5.235 lib/pwn/plugins/basic_auth.rb
pwn-0.5.234 lib/pwn/plugins/basic_auth.rb
pwn-0.5.233 lib/pwn/plugins/basic_auth.rb
pwn-0.5.232 lib/pwn/plugins/basic_auth.rb
pwn-0.5.231 lib/pwn/plugins/basic_auth.rb