wpscan 3.1.0 → 3.2.0
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 +3 -1
- data/app/controllers/aliases.rb +2 -1
- data/app/controllers/enumeration/cli_options.rb +4 -3
- data/app/controllers/enumeration/enum_methods.rb +1 -1
- data/lib/wpscan/finders/dynamic_finder/version/config_parser.rb +3 -1
- data/lib/wpscan/finders/dynamic_finder/version/javascript_var.rb +1 -1
- data/lib/wpscan/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cd042a221b0b46139937c959bd6428d4bedd1a2
|
4
|
+
data.tar.gz: dd5575dbaf1929427b82e8fa85496941eb3da313
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebe332bbc3f165474bfef341caf390d9ade882270ebaf68a901a4a8379decdc482cba640461aa8ff545b9ee05f9d2b84c6cec29a6f11129b2a50363eaf416f95
|
7
|
+
data.tar.gz: 225ef4a7706c4a44bd70a5c5da2b420a8d0f73d1bae8b52f613d1eb054fb469a86c60860189324a1e1f2505e129038b2bb521315485dd366830a86d8536556bd
|
data/README.md
CHANGED
@@ -113,7 +113,9 @@ Pull the repo with ```docker pull wpscanteam/wpscan-v3```
|
|
113
113
|
|
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
|
+
|
118
|
+
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)
|
117
119
|
|
118
120
|
The DB is located at ~/.wpscan/db
|
119
121
|
|
data/app/controllers/aliases.rb
CHANGED
@@ -4,7 +4,8 @@ module WPScan
|
|
4
4
|
class Aliases < CMSScanner::Controller::Base
|
5
5
|
def cli_options
|
6
6
|
[
|
7
|
-
OptAlias.new(['--stealthy'],
|
7
|
+
OptAlias.new(['--stealthy'],
|
8
|
+
alias_for: '--random-user-agent --detection-mode passive --plugins-version-detection passive')
|
8
9
|
]
|
9
10
|
end
|
10
11
|
end
|
@@ -26,7 +26,8 @@ module WPScan
|
|
26
26
|
m: OptIntegerRange.new(['--medias', 'Media ids range. e.g m1-15'], value_if_empty: '1-100')
|
27
27
|
},
|
28
28
|
value_if_empty: 'vp,vt,tt,cb,u,m',
|
29
|
-
incompatible: [%i[vp ap p], %i[vt at t]]
|
29
|
+
incompatible: [%i[vp ap p], %i[vt at t]],
|
30
|
+
default: { all_plugins: true, config_backups: true }
|
30
31
|
),
|
31
32
|
OptRegexp.new(
|
32
33
|
[
|
@@ -46,7 +47,7 @@ module WPScan
|
|
46
47
|
OptChoice.new(
|
47
48
|
['--plugins-detection MODE',
|
48
49
|
'Use the supplied mode to enumerate Plugins, instead of the global (--detection-mode) mode.'],
|
49
|
-
choices: %w[mixed passive aggressive], normalize: :to_sym
|
50
|
+
choices: %w[mixed passive aggressive], normalize: :to_sym, default: :passive
|
50
51
|
),
|
51
52
|
OptBoolean.new(
|
52
53
|
['--plugins-version-all',
|
@@ -57,7 +58,7 @@ module WPScan
|
|
57
58
|
['--plugins-version-detection MODE',
|
58
59
|
'Use the supplied mode to check plugins versions instead of the --detection-mode ' \
|
59
60
|
'or --plugins-detection modes.'],
|
60
|
-
choices: %w[mixed passive aggressive], normalize: :to_sym
|
61
|
+
choices: %w[mixed passive aggressive], normalize: :to_sym, default: :mixed
|
61
62
|
)
|
62
63
|
]
|
63
64
|
end
|
@@ -164,7 +164,7 @@ module WPScan
|
|
164
164
|
# If the --enumerate is used, the default value is handled by the Option
|
165
165
|
# However, when using --passwords alone, the default has to be set by the code below
|
166
166
|
def enum_users_range
|
167
|
-
parsed_options[:enumerate]
|
167
|
+
parsed_options[:enumerate][:users] || cli_enum_choices[0].choices[:u].validate(nil)
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
@@ -20,7 +20,9 @@ module WPScan
|
|
20
20
|
|
21
21
|
parsers.each do |parser|
|
22
22
|
begin
|
23
|
-
|
23
|
+
parsed = parser.respond_to?(:safe_load) ? parser.safe_load(body) : parser.load(body)
|
24
|
+
|
25
|
+
return parsed if parsed.is_a?(Hash)
|
24
26
|
rescue StandardError
|
25
27
|
next
|
26
28
|
end
|
@@ -39,7 +39,7 @@ module WPScan
|
|
39
39
|
def version_number_from_match_data(match_data)
|
40
40
|
if self.class::VERSION_KEY
|
41
41
|
begin
|
42
|
-
json = JSON.parse("{#{match_data[:json].strip.tr("'", '"')}}")
|
42
|
+
json = JSON.parse("{#{match_data[:json].strip.chomp(',').tr("'", '"')}}")
|
43
43
|
rescue JSON::ParserError
|
44
44
|
return
|
45
45
|
end
|
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.
|
4
|
+
version: 3.2.0
|
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-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cms_scanner
|
@@ -38,6 +38,20 @@ 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
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: yajl-ruby
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|