wpscan 3.7.5 → 3.7.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 29a5b1b220faac482fcc9dfc75acc1b5fa317b784781e661edaf62e8a4461b04
4
- data.tar.gz: 6f6734691c70deafdccfbf955233ffaaa205ff6b74fb98d8f03445706f30931d
3
+ metadata.gz: 19a2c1feb1442174b5f721eda7586cfee74fb28e1adbc232e9c9ccff1f4857d8
4
+ data.tar.gz: 86b8ec27710e3274849621cf389aa78f8aec160463356bed8fdf916753b68c7d
5
5
  SHA512:
6
- metadata.gz: 45ad4347d4492e62b1c7c12e095abbe07fafd2c68f45991372afdbe25a95a32d7c7bb03e3f80758ebbcc3dbc8408ed2698d05ecc607c8221978b6e8408a8d818
7
- data.tar.gz: 0af442e8628c812c473d07a3342fe2195e2e786ebece14f05d788b98b464b2d54f7614847705645e85a6984f284850768968d51d7056e64bd4de7d8232bf0b0c
6
+ metadata.gz: 79fc67c24d7ff4ddcd37d89711e85cd7bdfa5fe85e1c097f880f210ccc509d0844d06cff73f742ad81233dc0136116bb97d916fe81e018efd00d8f6bc1d93be5
7
+ data.tar.gz: 03f8380c1c7ff59f9f034bdda8914ceb5ab335d636f52a9302cffdd32f13ec0b3f62a5f3a91ae41bd4c893e3c8580df09a3bcda7265c7917b4a79c1cf4901e09
@@ -19,8 +19,12 @@ module WPScan
19
19
  def aggressive(opts = {})
20
20
  found = []
21
21
 
22
- enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |_res, slug|
23
- found << Model::Plugin.new(slug, target, opts.merge(found_by: found_by, confidence: 80))
22
+ enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |res, slug|
23
+ finding_opts = opts.merge(found_by: found_by,
24
+ confidence: 80,
25
+ interesting_entries: ["#{res.effective_url}, status: #{res.code}"])
26
+
27
+ found << Model::Plugin.new(slug, target, finding_opts)
24
28
 
25
29
  raise Error::PluginsThresholdReached if opts[:threshold].positive? && found.size >= opts[:threshold]
26
30
  end
@@ -19,8 +19,12 @@ module WPScan
19
19
  def aggressive(opts = {})
20
20
  found = []
21
21
 
22
- enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |_res, slug|
23
- found << Model::Theme.new(slug, target, opts.merge(found_by: found_by, confidence: 80))
22
+ enumerate(target_urls(opts), opts.merge(check_full_response: true)) do |res, slug|
23
+ finding_opts = opts.merge(found_by: found_by,
24
+ confidence: 80,
25
+ interesting_entries: ["#{res.effective_url}, status: #{res.code}"])
26
+
27
+ found << Model::Theme.new(slug, target, finding_opts)
24
28
 
25
29
  raise Error::ThemesThresholdReached if opts[:threshold].positive? && found.size >= opts[:threshold]
26
30
  end
@@ -23,7 +23,7 @@ module WPScan
23
23
  # @option opts [ Hash ] :version_detection The options to use when looking for the version
24
24
  # @option opts [ String ] :url The URL of the item
25
25
  def initialize(slug, blog, opts = {})
26
- @slug = URI.decode(slug)
26
+ @slug = Addressable::URI.unencode(slug)
27
27
  @blog = blog
28
28
  @uri = Addressable::URI.parse(opts[:url]) if opts[:url]
29
29
 
@@ -83,11 +83,6 @@ module WPScan
83
83
  end
84
84
  end
85
85
 
86
- # URI.encode is preferered over Addressable::URI.encode as it will encode
87
- # leading # character:
88
- # URI.encode('#t#') => %23t%23
89
- # Addressable::URI.encode('#t#') => #t%23
90
- #
91
86
  # @param [ String ] path Optional path to merge with the uri
92
87
  #
93
88
  # @return [ String ]
@@ -95,7 +90,7 @@ module WPScan
95
90
  return unless @uri
96
91
  return @uri.to_s unless path
97
92
 
98
- @uri.join(URI.encode(path)).to_s
93
+ @uri.join(Addressable::URI.encode(path)).to_s
99
94
  end
100
95
 
101
96
  # @return [ Boolean ]
@@ -166,7 +161,7 @@ module WPScan
166
161
  # @return [ Typhoeus::Response ]
167
162
  def head_and_get(path, codes = [200], params = {})
168
163
  final_path = +@path_from_blog
169
- final_path << URI.encode(path) unless path.nil?
164
+ final_path << path unless path.nil?
170
165
 
171
166
  blog.head_and_get(final_path, codes, params)
172
167
  end
@@ -9,6 +9,6 @@ _______________________________________________________________
9
9
  WordPress Security Scanner by the WPScan Team
10
10
  Version <%= WPScan::VERSION %>
11
11
  <%= ' ' * ((63 - WPScan::DB::Sponsor.text.length)/2) + WPScan::DB::Sponsor.text %>
12
- @_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_
12
+ @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
13
13
  _______________________________________________________________
14
14
 
@@ -9,5 +9,5 @@
9
9
  <% end -%>
10
10
  <% else -%>
11
11
  <%= warning_icon %> No WPVulnDB API Token given, as a result vulnerability data has not been output.
12
- <%= warning_icon %> You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up.
12
+ <%= warning_icon %> You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up
13
13
  <% end -%>
@@ -5,7 +5,7 @@
5
5
  "@_WPScan_",
6
6
  "@ethicalhack3r",
7
7
  "@erwan_lr",
8
- "@_FireFart_"
8
+ "@firefart"
9
9
  ],
10
10
  "sponsor": <%= WPScan::DB::Sponsor.text.to_json %>
11
11
  },
@@ -8,6 +8,6 @@
8
8
  "requests_remaining": <%= @status['requests_remaining'].to_json %>
9
9
  <% end -%>
10
10
  <% else -%>
11
- "error": "No WPVulnDB API Token given, as a result vulnerability data has not been output.\nYou can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up."
11
+ "error": "No WPVulnDB API Token given, as a result vulnerability data has not been output.\nYou can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up"
12
12
  <% end -%>
13
13
  },
@@ -37,6 +37,8 @@ module WPScan
37
37
  end
38
38
  end
39
39
 
40
+ # This one has been disabled from the DF.yml as it was causing FPs when a plugin had numerous
41
+ # files matching a known WP version.
40
42
  class WpItemQueryParameter < QueryParameter
41
43
  def xpath
42
44
  @xpath ||=
@@ -71,7 +71,7 @@ module WPScan
71
71
  #
72
72
  # @return [ String ]
73
73
  def plugin_url(slug)
74
- plugins_uri.join("#{URI.encode(slug)}/").to_s
74
+ plugins_uri.join("#{Addressable::URI.encode(slug)}/").to_s
75
75
  end
76
76
 
77
77
  # @return [ String ]
@@ -93,7 +93,7 @@ module WPScan
93
93
  #
94
94
  # @return [ String ]
95
95
  def theme_url(slug)
96
- themes_uri.join("#{URI.encode(slug)}/").to_s
96
+ themes_uri.join("#{Addressable::URI.encode(slug)}/").to_s
97
97
  end
98
98
 
99
99
  # @return [ String, False ] String of the sub_dir found, false otherwise
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Version
4
4
  module WPScan
5
- VERSION = '3.7.5'
5
+ VERSION = '3.7.6'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wpscan
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.5
4
+ version: 3.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - WPScanTeam
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-11 00:00:00.000000000 Z
11
+ date: 2020-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cms_scanner
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.7.1
19
+ version: 0.8.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.7.1
26
+ version: 0.8.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.76.0
117
+ version: 0.78.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.76.0
124
+ version: 0.78.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rubocop-performance
127
127
  requirement: !ruby/object:Gem::Requirement