Sha256: 91c83cc233c928ae7fc867cfec4749529a48f1ae19fadbbd2cb66ca8a1ee45a7

Contents?: true

Size: 1.93 KB

Versions: 25

Compression:

Stored size: 1.93 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

        # This one has been disabled from the DF.yml as it was causing FPs when a plugin had numerous
        # files matching a known WP version.
        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

25 entries across 25 versions & 1 rubygems

Version Path
wpscan-3.8.28 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.27 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.26 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.25 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.24 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.22 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.21 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.20 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.19 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.18 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.17 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.16 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.15 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.14 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.13 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.12 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.11 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.10 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.9 lib/wpscan/finders/dynamic_finder/wp_version.rb
wpscan-3.8.8 lib/wpscan/finders/dynamic_finder/wp_version.rb