wpscan 3.7.5 → 3.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/finders/plugins/known_locations.rb +6 -2
- data/app/finders/themes/known_locations.rb +6 -2
- data/app/models/wp_item.rb +3 -8
- data/app/views/cli/core/banner.erb +1 -1
- data/app/views/cli/vuln_api/status.erb +1 -1
- data/app/views/json/core/banner.erb +1 -1
- data/app/views/json/vuln_api/status.erb +1 -1
- data/lib/wpscan/finders/dynamic_finder/wp_version.rb +2 -0
- data/lib/wpscan/target/platform/wordpress/custom_directories.rb +2 -2
- data/lib/wpscan/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19a2c1feb1442174b5f721eda7586cfee74fb28e1adbc232e9c9ccff1f4857d8
|
4
|
+
data.tar.gz: 86b8ec27710e3274849621cf389aa78f8aec160463356bed8fdf916753b68c7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 |
|
23
|
-
|
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 |
|
23
|
-
|
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
|
data/app/models/wp_item.rb
CHANGED
@@ -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.
|
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 <<
|
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, @
|
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 -%>
|
@@ -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
|
},
|
@@ -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
|
data/lib/wpscan/version.rb
CHANGED
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
124
|
+
version: 0.78.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rubocop-performance
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|