Sha256: 9e66ad84197cbc81b4379d3e1dd4ca197ddd842ea9fe77992b71c5c3bc5280ea

Contents?: true

Size: 1.79 KB

Versions: 11

Compression:

Stored size: 1.79 KB

Contents

# frozen_string_literal: true

module WPScan
  module Finders
    module DynamicFinder
      module WpVersion
        module Finder
          def create_version(number, finding_opts)
            return unless Model::WpVersion.valid?(number)

            Model::WpVersion.new(number, version_finding_opts(finding_opts))
          end
        end

        class BodyPattern < Finders::DynamicFinder::Version::BodyPattern
          include Finder
        end

        class Comment < Finders::DynamicFinder::Version::Comment
          include Finder
        end

        class HeaderPattern < Finders::DynamicFinder::Version::HeaderPattern
          include Finder
        end

        class JavascriptVar < Finders::DynamicFinder::Version::JavascriptVar
          include Finder
        end

        class QueryParameter < Finders::DynamicFinder::Version::QueryParameter
          include Finder

          # @return [ Hash ]
          def self.child_class_constants
            @child_class_constants ||= super().merge(PATTERN: /ver\=(?<v>\d+\.[\.\d]+)/i)
          end
        end

        class WpItemQueryParameter < QueryParameter
          def xpath
            @xpath ||=
              self.class::XPATH ||
              "//link[contains(@href,'#{target.plugins_dir}') or contains(@href,'#{target.themes_dir}')]/@href" \
              "|//script[contains(@src,'#{target.plugins_dir}') or contains(@src,'#{target.themes_dir}')]/@src"
          end

          def path_pattern
            @path_pattern ||= %r{
              (?:#{Regexp.escape(target.plugins_dir)}|#{Regexp.escape(target.themes_dir)})/
              [^/]+/
              .*\.(?:css|js)\z
            }ix
          end
        end

        class Xpath < WPScan::Finders::DynamicFinder::Version::Xpath
          include Finder
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
wpscan-3.7.5 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.7.4 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.7.3 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.7.2 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.7.1 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.7.0 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.6.3 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.6.2 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.6.1 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.6.0 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.5.5 lib/wpscan/finders/dynamic_finder/wp_version.rb