wpscan 3.2.0 → 3.2.1
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/README.md +1 -0
- data/app/controllers/core.rb +7 -3
- data/app/finders/wp_version.rb +3 -2
- data/app/views/cli/core/version.erb +5 -0
- data/app/views/json/core/version.erb +2 -0
- data/lib/wpscan/finders/dynamic_finder/version/config_parser.rb +5 -3
- data/lib/wpscan/version.rb +1 -1
- metadata +8 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5faff8eba24f5f7d0ea97833dfb2200f23c1414b
|
4
|
+
data.tar.gz: 905e1d1dec28cea9d51d094ed7af626233f131fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10b9dc665fb06f2d3f422a02f432a64921bb855662627abf548aca9b9f45ee3cb6aa9f6e97edc71ba58f759f7eedebce90628849aa79f259e0ea1f1effba9049
|
7
|
+
data.tar.gz: ae7fc0b48cd53132fd2c0d2e4212b05a798afbbbb7aac9737d0cddb79b164885431b49b786b02eca0ae228926e71c60f5b6dd7f4699e4e607a71832202ef6db7
|
data/README.md
CHANGED
@@ -114,6 +114,7 @@ Pull the repo with ```docker pull wpscanteam/wpscan-v3```
|
|
114
114
|
# Usage
|
115
115
|
|
116
116
|
```wpscan --url blog.tld``` This will scan the blog using default options with a good compromise between speed and accuracy. For example, the plugins will be checked passively but their version with a mixed detection mode (passively + aggressively). Potential config backup files will also be checked, along with other interesting findings. If a more stealthy approach is required, then ```wpscan --stealthy --url blog.tld``` can be used.
|
117
|
+
As a result, when using the ```--enumerate``` option, don't forget to set the ```--plugins-detection``` accordingly, as its default is 'passive'.
|
117
118
|
|
118
119
|
For more options, open a terminal and type ```wpscan --help``` (if you built wpscan from the source, you should type the command outside of the git repo)
|
119
120
|
|
data/app/controllers/core.rb
CHANGED
@@ -4,14 +4,16 @@ module WPScan
|
|
4
4
|
class Core < CMSScanner::Controller::Core
|
5
5
|
# @return [ Array<OptParseValidator::Opt> ]
|
6
6
|
def cli_options
|
7
|
-
[OptURL.new(['--url URL', 'The URL of the blog to scan'],
|
7
|
+
[OptURL.new(['--url URL', 'The URL of the blog to scan'],
|
8
|
+
required_unless: %i[update help version], default_protocol: 'http')] +
|
8
9
|
super.drop(1) + # delete the --url from CMSScanner
|
9
10
|
[
|
10
11
|
OptChoice.new(['--server SERVER', 'Force the supplied server module to be loaded'],
|
11
12
|
choices: %w[apache iis nginx],
|
12
13
|
normalize: %i[downcase to_sym]),
|
13
14
|
OptBoolean.new(['--force', 'Do not check if the target is running WordPress']),
|
14
|
-
OptBoolean.new(['--[no-]update', 'Wether or not to update the Database'],
|
15
|
+
OptBoolean.new(['--[no-]update', 'Wether or not to update the Database'],
|
16
|
+
required_unless: %i[url help version])
|
15
17
|
]
|
16
18
|
end
|
17
19
|
|
@@ -46,7 +48,9 @@ module WPScan
|
|
46
48
|
end
|
47
49
|
|
48
50
|
def before_scan
|
49
|
-
|
51
|
+
@last_update = local_db.last_update
|
52
|
+
|
53
|
+
maybe_output_banner_help_and_version # From CMS Scanner
|
50
54
|
|
51
55
|
update_db if update_db_required?
|
52
56
|
setup_cache
|
data/app/finders/wp_version.rb
CHANGED
@@ -25,8 +25,9 @@ module WPScan
|
|
25
25
|
|
26
26
|
# @param [ WPScan::Target ] target
|
27
27
|
def initialize(target)
|
28
|
-
(
|
29
|
-
|
28
|
+
(%w[RSSGenerator AtomGenerator RDFGenerator] +
|
29
|
+
WPScan::DB::DynamicFinders::Wordpress.versions_finders_configs.keys +
|
30
|
+
%w[Readme UniqueFingerprinting]
|
30
31
|
).each do |finder_name|
|
31
32
|
finders << WpVersion.const_get(finder_name.to_sym).new(target)
|
32
33
|
end
|
@@ -22,13 +22,13 @@ module WPScan
|
|
22
22
|
begin
|
23
23
|
parsed = parser.respond_to?(:safe_load) ? parser.safe_load(body) : parser.load(body)
|
24
24
|
|
25
|
-
return parsed if parsed.is_a?(Hash)
|
25
|
+
return parsed if parsed.is_a?(Hash) || parsed.is_a?(Array)
|
26
26
|
rescue StandardError
|
27
27
|
next
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
nil # Make sure nil is returned in case none of the parsers
|
31
|
+
nil # Make sure nil is returned in case none of the parsers managed to parse the body correctly
|
32
32
|
end
|
33
33
|
|
34
34
|
# No Passive way
|
@@ -39,8 +39,10 @@ module WPScan
|
|
39
39
|
# @return [ Version ]
|
40
40
|
def find(response, _opts = {})
|
41
41
|
parsed_body = parse(response.body)
|
42
|
+
# Create indexes for the #dig, digits are converted to integers
|
43
|
+
indexes = self.class::KEY.split(':').map { |e| e == e.to_i.to_s ? e.to_i : e }
|
42
44
|
|
43
|
-
return unless (data = parsed_body&.dig(*
|
45
|
+
return unless (data = parsed_body&.dig(*indexes)) && data =~ self.class::PATTERN
|
44
46
|
|
45
47
|
create_version(
|
46
48
|
Regexp.last_match[:v],
|
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.2.
|
4
|
+
version: 3.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- WPScanTeam
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-04 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.0.39.
|
19
|
+
version: 0.0.39.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.0.39.
|
26
|
+
version: 0.0.39.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '5.1'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: opt_parse_validator
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.0.15.2
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.0.15.2
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: yajl-ruby
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +156,14 @@ dependencies:
|
|
170
156
|
requirements:
|
171
157
|
- - "~>"
|
172
158
|
- !ruby/object:Gem::Version
|
173
|
-
version: 3.
|
159
|
+
version: 3.3.0
|
174
160
|
type: :development
|
175
161
|
prerelease: false
|
176
162
|
version_requirements: !ruby/object:Gem::Requirement
|
177
163
|
requirements:
|
178
164
|
- - "~>"
|
179
165
|
- !ruby/object:Gem::Version
|
180
|
-
version: 3.
|
166
|
+
version: 3.3.0
|
181
167
|
description: WPScan is a black box WordPress vulnerability scanner.
|
182
168
|
email:
|
183
169
|
- team@wpscan.org
|
@@ -275,6 +261,7 @@ files:
|
|
275
261
|
- app/views/cli/core/db_update_finished.erb
|
276
262
|
- app/views/cli/core/db_update_started.erb
|
277
263
|
- app/views/cli/core/not_fully_configured.erb
|
264
|
+
- app/views/cli/core/version.erb
|
278
265
|
- app/views/cli/enumeration/config_backups.erb
|
279
266
|
- app/views/cli/enumeration/medias.erb
|
280
267
|
- app/views/cli/enumeration/plugins.erb
|
@@ -295,6 +282,7 @@ files:
|
|
295
282
|
- app/views/json/core/db_update_finished.erb
|
296
283
|
- app/views/json/core/db_update_started.erb
|
297
284
|
- app/views/json/core/not_fully_configured.erb
|
285
|
+
- app/views/json/core/version.erb
|
298
286
|
- app/views/json/enumeration/config_backups.erb
|
299
287
|
- app/views/json/enumeration/medias.erb
|
300
288
|
- app/views/json/enumeration/plugins.erb
|