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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 247fd91f253010fbefa767737b15d9abce9abdc5
4
- data.tar.gz: bf4527c1501a3b641a4a242043baf8d302e0e5e8
3
+ metadata.gz: 2cd042a221b0b46139937c959bd6428d4bedd1a2
4
+ data.tar.gz: dd5575dbaf1929427b82e8fa85496941eb3da313
5
5
  SHA512:
6
- metadata.gz: 6f7ae471f65c4abab39653e95153a10c5893f7995f64b403bb9e4bac6748e93394daa4db9e4e2175293165dee60813a168af7f8043cbd249232a1b6abec00cfd
7
- data.tar.gz: 86c27e7770b2674f286fcf55d49fe6b0cb2540d0a24a790e80c268b9901ab00cfd0d0e793ae294aebda586f414212a5077a1f58b489b272413c672833118dcab
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
- Open a terminal and type ```wpscan --help``` (if you built wpscan from the source, you should type the command outside of the git repo)
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
 
@@ -4,7 +4,8 @@ module WPScan
4
4
  class Aliases < CMSScanner::Controller::Base
5
5
  def cli_options
6
6
  [
7
- OptAlias.new(['--stealthy'], alias_for: '--random-user-agent --detection-mode passive')
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] ? parsed_options[:enumerate][:users] : cli_enum_choices[0].choices[:u].validate(nil)
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
- return parser.respond_to?(:safe_load) ? parser.safe_load(body) : parser.load(body)
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
@@ -1,4 +1,4 @@
1
1
  # Version
2
2
  module WPScan
3
- VERSION = '3.1.0'.freeze
3
+ VERSION = '3.2.0'.freeze
4
4
  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.1.0
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-01-16 00:00:00.000000000 Z
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