cms_scanner 0.0.37.11 → 0.0.37.12
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92c1a1bc745065a29c4770a7ff9143749f5373ea
|
4
|
+
data.tar.gz: 3ee76b460d6cd72f72aa03eb0beb095e367aa663
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 756dd179151bbf8a904b1a8ee2a206e39b9a76cbe8891a3cabc80b71670cb87550385709246bb5c67f82309cb9f675c03ee622cc2116fccf038442820aac5ab9
|
7
|
+
data.tar.gz: 45eacba22c283773bf2cb8eb8e7dcc0694fa263a54d5932b6e6d2bf2a3adc0437de2d7db2566b9aab9903ccdc7c8a6836542a267d400b637000c5ce1b25a58f6
|
@@ -15,7 +15,7 @@ module CMSScanner
|
|
15
15
|
OptChoice.new(['--detection-mode MODE'],
|
16
16
|
choices: %w[mixed passive aggressive],
|
17
17
|
normalize: :to_sym,
|
18
|
-
default:
|
18
|
+
default: 'mixed'),
|
19
19
|
OptArray.new(['--scope DOMAINS',
|
20
20
|
'Comma separated (sub-)domains to consider in scope. ',
|
21
21
|
'Wildcard(s) allowed in the trd of valid domains, e.g: *.target.tld'])
|
@@ -31,13 +31,13 @@ module CMSScanner
|
|
31
31
|
'List of agents to use with --random-user-agent'], exists: true),
|
32
32
|
OptCredentials.new(['--http-auth login:password']),
|
33
33
|
OptPositiveInteger.new(['--max-threads VALUE', '-t', 'The max threads to use'],
|
34
|
-
default: 5),
|
34
|
+
default: '5'),
|
35
35
|
OptPositiveInteger.new(['--throttle MilliSeconds', 'Milliseconds to wait before doing another web request. ' \
|
36
36
|
'If used, the max threads will be set to 1.']),
|
37
37
|
OptPositiveInteger.new(['--request-timeout SECONDS', 'The request timeout in seconds'],
|
38
|
-
default: 60),
|
38
|
+
default: '60'),
|
39
39
|
OptPositiveInteger.new(['--connect-timeout SECONDS', 'The connection timeout in seconds'],
|
40
|
-
default: 30)
|
40
|
+
default: '30')
|
41
41
|
] + cli_browser_proxy_options + cli_browser_cookies_options + cli_browser_cache_options
|
42
42
|
end
|
43
43
|
|
@@ -67,7 +67,8 @@ module CMSScanner
|
|
67
67
|
'format: cookie1=value1[; cookie2=value2]']),
|
68
68
|
OptFilePath.new(['--cookie-jar FILE-PATH', 'File to read and write cookies'],
|
69
69
|
writable: true,
|
70
|
-
|
70
|
+
readable: true,
|
71
|
+
create: true,
|
71
72
|
default: File.join(tmp_directory, 'cookie_jar.txt'))
|
72
73
|
]
|
73
74
|
end
|
@@ -75,11 +76,12 @@ module CMSScanner
|
|
75
76
|
# @return [ Array<OptParseValidator::OptBase> ]
|
76
77
|
def cli_browser_cache_options
|
77
78
|
[
|
78
|
-
OptInteger.new(['--cache-ttl TIME_TO_LIVE', 'The cache time to live in seconds'], default: 600),
|
79
|
+
OptInteger.new(['--cache-ttl TIME_TO_LIVE', 'The cache time to live in seconds'], default: '600'),
|
79
80
|
OptBoolean.new(['--clear-cache', 'Clear the cache before the scan']),
|
80
81
|
OptDirectoryPath.new(['--cache-dir PATH'],
|
81
82
|
readable: true,
|
82
83
|
writable: true,
|
84
|
+
create: true,
|
83
85
|
default: File.join(tmp_directory, 'cache'))
|
84
86
|
]
|
85
87
|
end
|
data/cms_scanner.gemspec
CHANGED
@@ -37,7 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
s.add_dependency 'yajl-ruby', '~> 1.3.0' # Better JSON parser regarding memory usage
|
38
38
|
s.add_dependency 'public_suffix', '~> 3.0.0'
|
39
39
|
s.add_dependency 'ruby-progressbar', '~> 1.9.0'
|
40
|
-
s.add_dependency 'opt_parse_validator', '~> 0.0.13.
|
40
|
+
s.add_dependency 'opt_parse_validator', '~> 0.0.13.11'
|
41
41
|
|
42
42
|
# Already required by opt_parse_validator
|
43
43
|
# so version restriction loosen to avoid potential future conflicts
|
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
|
|
45
45
|
s.add_dependency 'activesupport', '~> 5.0'
|
46
46
|
|
47
47
|
s.add_development_dependency 'rake', '~> 12.0'
|
48
|
-
s.add_development_dependency 'rspec', '~> 3.
|
48
|
+
s.add_development_dependency 'rspec', '~> 3.7.0'
|
49
49
|
s.add_development_dependency 'rspec-its', '~> 1.2.0'
|
50
50
|
s.add_development_dependency 'bundler', '~> 1.6'
|
51
51
|
s.add_development_dependency 'rubocop', '~> 0.50.0'
|
@@ -4,7 +4,7 @@ module CMSScanner
|
|
4
4
|
# Module to provide an easy way to fingerprint things such as versions
|
5
5
|
module Fingerprinter
|
6
6
|
# @param [ Hash ] fingerprints The fingerprints
|
7
|
-
# Format should be the following:
|
7
|
+
# Format should be like the following:
|
8
8
|
# {
|
9
9
|
# file_path_1: {
|
10
10
|
# md5_hash_1: version_1,
|
@@ -23,7 +23,7 @@ module CMSScanner
|
|
23
23
|
# @yield [ Mixed, String, String ] version/s, url, hash The version associated to the
|
24
24
|
# fingerprint of the url
|
25
25
|
def fingerprint(fingerprints, opts = {})
|
26
|
-
create_progress_bar(opts.merge(total: fingerprints.size))
|
26
|
+
create_progress_bar(opts.merge(total: fingerprints.size))
|
27
27
|
|
28
28
|
fingerprints.each do |path, f|
|
29
29
|
url = target.url(path.dup)
|
@@ -9,7 +9,12 @@ module CMSScanner
|
|
9
9
|
def self.page_hash(page)
|
10
10
|
page = NS::Browser.get(page, followlocation: true) unless page.is_a?(Typhoeus::Response)
|
11
11
|
|
12
|
-
|
12
|
+
# Removes comments and script tags before computing the hash
|
13
|
+
# to remove any potential cached stuff
|
14
|
+
html = Nokogiri::HTML(page.body)
|
15
|
+
html.xpath('//script|//comment()').each(&:remove)
|
16
|
+
|
17
|
+
Digest::MD5.hexdigest(html)
|
13
18
|
end
|
14
19
|
|
15
20
|
# @return [ String ] The hash of the homepage
|
data/lib/cms_scanner/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cms_scanner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.37.
|
4
|
+
version: 0.0.37.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- WPScanTeam
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.0.13.
|
89
|
+
version: 0.0.13.11
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.0.13.
|
96
|
+
version: 0.0.13.11
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: addressable
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 3.
|
145
|
+
version: 3.7.0
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 3.
|
152
|
+
version: 3.7.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: rspec-its
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|