wpscan 3.0 → 3.0.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/Gemfile.lock +3 -3
- data/README.md +1 -1
- data/app/models/wp_item.rb +15 -1
- data/app/views/cli/enumeration/plugins.erb +1 -16
- data/app/views/cli/theme.erb +1 -16
- data/app/views/cli/wp_item.erb +22 -0
- data/app/views/json/enumeration/plugins.erb +1 -6
- data/app/views/json/theme.erb +1 -7
- data/app/views/json/wp_item.erb +9 -0
- data/coverage/index.html +303 -201
- data/lib/wpscan.rb +4 -1
- data/lib/wpscan/version.rb +1 -1
- data/pkg/wpscan-3.0.gem +0 -0
- data/wpscan-v3.sublime-workspace +189 -41
- data/wpscan.gemspec +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cce30033901db0ba94410aa02b7e73e0bc404cfa
|
|
4
|
+
data.tar.gz: ad5c0a88781e08b57c85f853f382b216898309a3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 701893ea7370d17011b5b88e10cf087454ec382393032cbd2755ccc405be44ad662b3cf7888fa651cf5f100c79ba89a90fc46a5f0d67c1d777590f0ec2a60075
|
|
7
|
+
data.tar.gz: dedbfef9d00d9c8117803359af9606560c7edd3b9be7460a79aa927db1d4a254707dbc32d83b598a354376396d1022544e8aa9048025b1381fb6254b927a3410
|
data/Gemfile.lock
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
wpscan (3.0)
|
|
4
|
+
wpscan (3.0.1)
|
|
5
5
|
activesupport (~> 5.0.1.0)
|
|
6
|
-
cms_scanner (~> 0.0.37.
|
|
6
|
+
cms_scanner (~> 0.0.37.8)
|
|
7
7
|
dm-constraints (~> 1.2.0)
|
|
8
8
|
dm-core (~> 1.2.0)
|
|
9
9
|
dm-migrations (~> 1.2.0)
|
|
@@ -21,7 +21,7 @@ GEM
|
|
|
21
21
|
addressable (2.5.0)
|
|
22
22
|
public_suffix (~> 2.0, >= 2.0.2)
|
|
23
23
|
ast (2.3.0)
|
|
24
|
-
cms_scanner (0.0.37.
|
|
24
|
+
cms_scanner (0.0.37.8)
|
|
25
25
|
activesupport (~> 5.0.1)
|
|
26
26
|
addressable (~> 2.5.0)
|
|
27
27
|
nokogiri (~> 1.7.0.1)
|
data/README.md
CHANGED
data/app/models/wp_item.rb
CHANGED
|
@@ -55,7 +55,7 @@ module WPScan
|
|
|
55
55
|
|
|
56
56
|
# @return [ String ]
|
|
57
57
|
def latest_version
|
|
58
|
-
@latest_version ||= db_data['latest_version']
|
|
58
|
+
@latest_version ||= db_data['latest_version'] ? WPScan::Version.new(db_data['latest_version']) : nil
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
# Not used anywhere ATM
|
|
@@ -64,6 +64,20 @@ module WPScan
|
|
|
64
64
|
@popular ||= db_data['popular']
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
+
# @return [ String ]
|
|
68
|
+
def last_updated
|
|
69
|
+
@last_updated ||= db_data['last_updated']
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# @return [ Boolean ]
|
|
73
|
+
def outdated?
|
|
74
|
+
@outdated ||= if version && latest_version
|
|
75
|
+
version < latest_version
|
|
76
|
+
else
|
|
77
|
+
false
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
67
81
|
# URI.encode is preferered over Addressable::URI.encode as it will encode
|
|
68
82
|
# leading # character:
|
|
69
83
|
# URI.encode('#t#') => %23t%23
|
|
@@ -6,22 +6,7 @@
|
|
|
6
6
|
<% @plugins.each do |plugin| -%>
|
|
7
7
|
|
|
8
8
|
<%= info_icon %> <%= plugin %>
|
|
9
|
-
|
|
10
|
-
<% if plugin.latest_version -%>
|
|
11
|
-
| Latest Version: <%= plugin.latest_version %>
|
|
12
|
-
<% end -%>
|
|
13
|
-
<% if plugin.readme_url -%>
|
|
14
|
-
| Readme: <%= plugin.readme_url %>
|
|
15
|
-
<% end -%>
|
|
16
|
-
<% if plugin.changelog_url -%>
|
|
17
|
-
| Changelog: <%= plugin.changelog_url %>
|
|
18
|
-
<% end -%>
|
|
19
|
-
<% if plugin.directory_listing? -%>
|
|
20
|
-
| <%= critical_icon %> Directory listing is enabled
|
|
21
|
-
<% end -%>
|
|
22
|
-
<% if plugin.error_log? -%>
|
|
23
|
-
| <%= critical_icon %> An error log file has been found: <%= plugin.url('error_log') %>
|
|
24
|
-
<% end -%>
|
|
9
|
+
<%= render('@wp_item', wp_item: plugin) -%>
|
|
25
10
|
|
|
|
26
11
|
<%= render('@finding', item: plugin) -%>
|
|
27
12
|
|
|
data/app/views/cli/theme.erb
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
<% if @theme.latest_version -%>
|
|
3
|
-
| Latest Version: <%= @theme.latest_version %>
|
|
4
|
-
<% end -%>
|
|
5
|
-
<% if @theme.readme_url -%>
|
|
6
|
-
| Readme: <%= @theme.readme_url %>
|
|
7
|
-
<% end -%>
|
|
8
|
-
<% if @theme.changelog_url -%>
|
|
9
|
-
| Changelog: <%= @theme.changelog_url %>
|
|
10
|
-
<% end -%>
|
|
11
|
-
<% if @theme.directory_listing? -%>
|
|
12
|
-
| <%= critical_icon %> Directory listing is enabled
|
|
13
|
-
<% end -%>
|
|
14
|
-
<% if @theme.error_log? -%>
|
|
15
|
-
| <%= critical_icon %> An error log file has been found: <%= @theme.url('error_log') %>
|
|
16
|
-
<% end -%>
|
|
1
|
+
<%= render('@wp_item', wp_item: @theme) -%>
|
|
17
2
|
| Style URL: <%= @theme.style_url %>
|
|
18
3
|
<% if @theme.style_name -%>
|
|
19
4
|
| Style Name: <%= @theme.style_name %>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
| Location: <%= @wp_item.url %>
|
|
2
|
+
<% if @wp_item.latest_version && !@wp_item.outdated? -%>
|
|
3
|
+
| Latest Version: <%= @wp_item.latest_version %><% if @wp_item.version %> (up to date)<% end %>
|
|
4
|
+
<% end -%>
|
|
5
|
+
<% if @wp_item.last_updated -%>
|
|
6
|
+
| Last Updated: <%= @wp_item.last_updated %>
|
|
7
|
+
<% end -%>
|
|
8
|
+
<% if @wp_item.readme_url -%>
|
|
9
|
+
| Readme: <%= @wp_item.readme_url %>
|
|
10
|
+
<% end -%>
|
|
11
|
+
<% if @wp_item.changelog_url -%>
|
|
12
|
+
| Changelog: <%= @wp_item.changelog_url %>
|
|
13
|
+
<% end -%>
|
|
14
|
+
<% if @wp_item.latest_version && @wp_item.outdated? -%>
|
|
15
|
+
| <%= warning_icon %> The version is out of date, the latest version is <%= @wp_item.latest_version %>
|
|
16
|
+
<% end -%>
|
|
17
|
+
<% if @wp_item.directory_listing? -%>
|
|
18
|
+
| <%= critical_icon %> Directory listing is enabled
|
|
19
|
+
<% end -%>
|
|
20
|
+
<% if @wp_item.error_log? -%>
|
|
21
|
+
| <%= critical_icon %> An error log file has been found: <%= @wp_item.url('error_log') %>
|
|
22
|
+
<% end -%>
|
|
@@ -3,12 +3,7 @@
|
|
|
3
3
|
<% last_index = @plugins.size - 1 -%>
|
|
4
4
|
<% @plugins.each_with_index do |plugin, index| -%>
|
|
5
5
|
<%= plugin.name.to_json %>: {
|
|
6
|
-
|
|
7
|
-
"latest_version": <%= plugin.latest_version.to_json %>,
|
|
8
|
-
"readme_url": <%= plugin.readme_url.to_json %>,
|
|
9
|
-
"changelog_url": <%= plugin.changelog_url.to_json %>,
|
|
10
|
-
"directory_listing": <%= plugin.directory_listing?.to_json %>,
|
|
11
|
-
"error_log_url": <% if plugin.error_log? %><%= plugin.url('error_log').to_json %><% else %>null<% end %>,
|
|
6
|
+
<%= render('@wp_item', wp_item: plugin) %>,
|
|
12
7
|
<%= render('@finding', item: plugin) -%>,
|
|
13
8
|
<% if plugin.version -%>
|
|
14
9
|
"version": {
|
data/app/views/json/theme.erb
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
"location": <%= @theme.url.to_json %>,
|
|
3
|
-
"latest_version": <%= @theme.latest_version.to_json %>,
|
|
4
|
-
"readme_url": <%= @theme.readme_url.to_json %>,
|
|
5
|
-
"changelog_url": <%= @theme.changelog_url.to_json %>,
|
|
6
|
-
"directory_listing": <%= @theme.directory_listing?.to_json %>,
|
|
7
|
-
"error_log_url": <% if @theme.error_log? %><%= @theme.url('error_log').to_json %><% else %>null<% end %>,
|
|
1
|
+
<%= render('@wp_item', wp_item: @theme) %>,
|
|
8
2
|
"style_url": <%= @theme.style_url.to_json %>,
|
|
9
3
|
"style_name": <%= @theme.style_name.to_json %>,
|
|
10
4
|
"style_uri": <%= @theme.style_uri.to_json %>,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"name": <%= @wp_item.name.to_json %>,
|
|
2
|
+
"location": <%= @wp_item.url.to_json %>,
|
|
3
|
+
"latest_version": <%= @wp_item.latest_version ? @wp_item.latest_version.number.to_json : nil.to_json %>,
|
|
4
|
+
"last_updated": <%= @wp_item.last_updated.to_json %>,
|
|
5
|
+
"outdated": <%= @wp_item.outdated?.to_json %>,
|
|
6
|
+
"readme_url": <%= @wp_item.readme_url.to_json %>,
|
|
7
|
+
"changelog_url": <%= @wp_item.changelog_url.to_json %>,
|
|
8
|
+
"directory_listing": <%= @wp_item.directory_listing?.to_json %>,
|
|
9
|
+
"error_log_url": <% if @wp_item.error_log? %><%= @wp_item.url('error_log').to_json %><% else %>null<% end %>
|
data/coverage/index.html
CHANGED
|
@@ -14,26 +14,26 @@
|
|
|
14
14
|
<img src="./assets/0.10.0/loading.gif" alt="loading"/>
|
|
15
15
|
</div>
|
|
16
16
|
<div id="wrapper" style="display:none;">
|
|
17
|
-
<div class="timestamp">Generated <abbr class="timeago" title="2017-01-
|
|
17
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2017-01-28T17:33:26+00:00">2017-01-28T17:33:26+00:00</abbr></div>
|
|
18
18
|
<ul class="group_tabs"></ul>
|
|
19
19
|
|
|
20
20
|
<div id="content">
|
|
21
21
|
<div class="file_list_container" id="AllFiles">
|
|
22
22
|
<h2>
|
|
23
23
|
<span class="group_name">All Files</span>
|
|
24
|
-
(<span class="covered_percent"><span class="yellow">82.
|
|
24
|
+
(<span class="covered_percent"><span class="yellow">82.88%</span></span>
|
|
25
25
|
covered at
|
|
26
26
|
<span class="covered_strength">
|
|
27
27
|
<span class="green">
|
|
28
|
-
16.
|
|
28
|
+
16.47
|
|
29
29
|
</span>
|
|
30
30
|
</span> hits/line)
|
|
31
31
|
</h2>
|
|
32
32
|
<a name="AllFiles"></a>
|
|
33
33
|
<div>
|
|
34
34
|
<b>108</b> files in total.
|
|
35
|
-
<b>
|
|
36
|
-
<span class="green"><b>
|
|
35
|
+
<b>1618</b> relevant lines.
|
|
36
|
+
<span class="green"><b>1341</b> lines covered</span> and
|
|
37
37
|
<span class="red"><b>277</b> lines missed </span>
|
|
38
38
|
</div>
|
|
39
39
|
<table class="file_list">
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
<td>12</td>
|
|
258
258
|
<td>12</td>
|
|
259
259
|
<td>0</td>
|
|
260
|
-
<td>
|
|
260
|
+
<td>2.8</td>
|
|
261
261
|
</tr>
|
|
262
262
|
|
|
263
263
|
<tr>
|
|
@@ -377,7 +377,7 @@
|
|
|
377
377
|
<td>13</td>
|
|
378
378
|
<td>13</td>
|
|
379
379
|
<td>0</td>
|
|
380
|
-
<td>
|
|
380
|
+
<td>4.1</td>
|
|
381
381
|
</tr>
|
|
382
382
|
|
|
383
383
|
<tr>
|
|
@@ -387,7 +387,7 @@
|
|
|
387
387
|
<td>33</td>
|
|
388
388
|
<td>33</td>
|
|
389
389
|
<td>0</td>
|
|
390
|
-
<td>
|
|
390
|
+
<td>77.4</td>
|
|
391
391
|
</tr>
|
|
392
392
|
|
|
393
393
|
<tr>
|
|
@@ -797,7 +797,7 @@
|
|
|
797
797
|
<td>10</td>
|
|
798
798
|
<td>10</td>
|
|
799
799
|
<td>0</td>
|
|
800
|
-
<td>
|
|
800
|
+
<td>62.8</td>
|
|
801
801
|
</tr>
|
|
802
802
|
|
|
803
803
|
<tr>
|
|
@@ -807,7 +807,7 @@
|
|
|
807
807
|
<td>37</td>
|
|
808
808
|
<td>35</td>
|
|
809
809
|
<td>2</td>
|
|
810
|
-
<td>80.
|
|
810
|
+
<td>80.9</td>
|
|
811
811
|
</tr>
|
|
812
812
|
|
|
813
813
|
<tr>
|
|
@@ -832,12 +832,12 @@
|
|
|
832
832
|
|
|
833
833
|
<tr>
|
|
834
834
|
<td class="strong"><a href="#66e55c6afef8eb3f7f5760fdb675fffe42be4db9" class="src_link" title="app/models/wp_item.rb">app/models/wp_item.rb</a></td>
|
|
835
|
-
<td class="green strong">98.
|
|
836
|
-
<td>
|
|
837
|
-
<td>
|
|
838
|
-
<td>
|
|
835
|
+
<td class="green strong">98.46 %</td>
|
|
836
|
+
<td>156</td>
|
|
837
|
+
<td>65</td>
|
|
838
|
+
<td>64</td>
|
|
839
839
|
<td>1</td>
|
|
840
|
-
<td>
|
|
840
|
+
<td>109.4</td>
|
|
841
841
|
</tr>
|
|
842
842
|
|
|
843
843
|
<tr>
|
|
@@ -863,7 +863,7 @@
|
|
|
863
863
|
<tr>
|
|
864
864
|
<td class="strong"><a href="#d34ffdcc4fec57d1e9e9196b9cc1a435beb7d9ff" class="src_link" title="lib/wpscan.rb">lib/wpscan.rb</a></td>
|
|
865
865
|
<td class="green strong">100.0 %</td>
|
|
866
|
-
<td>
|
|
866
|
+
<td>47</td>
|
|
867
867
|
<td>30</td>
|
|
868
868
|
<td>30</td>
|
|
869
869
|
<td>0</td>
|
|
@@ -987,7 +987,7 @@
|
|
|
987
987
|
<td>7</td>
|
|
988
988
|
<td>7</td>
|
|
989
989
|
<td>0</td>
|
|
990
|
-
<td>
|
|
990
|
+
<td>16.4</td>
|
|
991
991
|
</tr>
|
|
992
992
|
|
|
993
993
|
<tr>
|
|
@@ -1107,7 +1107,7 @@
|
|
|
1107
1107
|
<td>42</td>
|
|
1108
1108
|
<td>42</td>
|
|
1109
1109
|
<td>0</td>
|
|
1110
|
-
<td>
|
|
1110
|
+
<td>63.0</td>
|
|
1111
1111
|
</tr>
|
|
1112
1112
|
|
|
1113
1113
|
<tr>
|
|
@@ -7160,14 +7160,14 @@
|
|
|
7160
7160
|
<code class="ruby"> potential_files.each do |file|</code>
|
|
7161
7161
|
</li>
|
|
7162
7162
|
|
|
7163
|
-
<li class="covered" data-hits="
|
|
7164
|
-
<span class="hits">
|
|
7163
|
+
<li class="covered" data-hits="6" data-linenumber="9">
|
|
7164
|
+
<span class="hits">6</span>
|
|
7165
7165
|
|
|
7166
7166
|
<code class="ruby"> url = target.url(file)</code>
|
|
7167
7167
|
</li>
|
|
7168
7168
|
|
|
7169
|
-
<li class="covered" data-hits="
|
|
7170
|
-
<span class="hits">
|
|
7169
|
+
<li class="covered" data-hits="6" data-linenumber="10">
|
|
7170
|
+
<span class="hits">6</span>
|
|
7171
7171
|
|
|
7172
7172
|
<code class="ruby"> res = Browser.get(url)</code>
|
|
7173
7173
|
</li>
|
|
@@ -7178,8 +7178,8 @@
|
|
|
7178
7178
|
<code class="ruby"></code>
|
|
7179
7179
|
</li>
|
|
7180
7180
|
|
|
7181
|
-
<li class="covered" data-hits="
|
|
7182
|
-
<span class="hits">
|
|
7181
|
+
<li class="covered" data-hits="6" data-linenumber="12">
|
|
7182
|
+
<span class="hits">6</span>
|
|
7183
7183
|
|
|
7184
7184
|
<code class="ruby"> if res.code == 200 && res.body =~ /wordpress/i</code>
|
|
7185
7185
|
</li>
|
|
@@ -9506,8 +9506,8 @@
|
|
|
9506
9506
|
<code class="ruby"> potential_urls.each do |url|</code>
|
|
9507
9507
|
</li>
|
|
9508
9508
|
|
|
9509
|
-
<li class="covered" data-hits="
|
|
9510
|
-
<span class="hits">
|
|
9509
|
+
<li class="covered" data-hits="8" data-linenumber="14">
|
|
9510
|
+
<span class="hits">8</span>
|
|
9511
9511
|
|
|
9512
9512
|
<code class="ruby"> res = Browser.get(url)</code>
|
|
9513
9513
|
</li>
|
|
@@ -9518,8 +9518,8 @@
|
|
|
9518
9518
|
<code class="ruby"></code>
|
|
9519
9519
|
</li>
|
|
9520
9520
|
|
|
9521
|
-
<li class="covered" data-hits="
|
|
9522
|
-
<span class="hits">
|
|
9521
|
+
<li class="covered" data-hits="8" data-linenumber="16">
|
|
9522
|
+
<span class="hits">8</span>
|
|
9523
9523
|
|
|
9524
9524
|
<code class="ruby"> next unless res.code == 200 && res.body =~ /Project-Id-Version: LayerSlider WP v?([0-9\.][^\\\s]+)/</code>
|
|
9525
9525
|
</li>
|
|
@@ -9746,14 +9746,14 @@
|
|
|
9746
9746
|
<code class="ruby"> WPScan::WpItem::READMES.each do |file|</code>
|
|
9747
9747
|
</li>
|
|
9748
9748
|
|
|
9749
|
-
<li class="covered" data-hits="
|
|
9750
|
-
<span class="hits">
|
|
9749
|
+
<li class="covered" data-hits="79" data-linenumber="11">
|
|
9750
|
+
<span class="hits">79</span>
|
|
9751
9751
|
|
|
9752
9752
|
<code class="ruby"> url = target.url(file)</code>
|
|
9753
9753
|
</li>
|
|
9754
9754
|
|
|
9755
|
-
<li class="covered" data-hits="
|
|
9756
|
-
<span class="hits">
|
|
9755
|
+
<li class="covered" data-hits="79" data-linenumber="12">
|
|
9756
|
+
<span class="hits">79</span>
|
|
9757
9757
|
|
|
9758
9758
|
<code class="ruby"> res = Browser.get(url)</code>
|
|
9759
9759
|
</li>
|
|
@@ -9764,8 +9764,8 @@
|
|
|
9764
9764
|
<code class="ruby"></code>
|
|
9765
9765
|
</li>
|
|
9766
9766
|
|
|
9767
|
-
<li class="covered" data-hits="
|
|
9768
|
-
<span class="hits">
|
|
9767
|
+
<li class="covered" data-hits="79" data-linenumber="14">
|
|
9768
|
+
<span class="hits">79</span>
|
|
9769
9769
|
|
|
9770
9770
|
<code class="ruby"> next unless res.code == 200 && !(numbers = version_numbers(res.body)).empty?</code>
|
|
9771
9771
|
</li>
|
|
@@ -18974,8 +18974,8 @@
|
|
|
18974
18974
|
<code class="ruby"> def initialize(name, target, opts = {})</code>
|
|
18975
18975
|
</li>
|
|
18976
18976
|
|
|
18977
|
-
<li class="covered" data-hits="
|
|
18978
|
-
<span class="hits">
|
|
18977
|
+
<li class="covered" data-hits="299" data-linenumber="6">
|
|
18978
|
+
<span class="hits">299</span>
|
|
18979
18979
|
|
|
18980
18980
|
<code class="ruby"> super(name, target, opts)</code>
|
|
18981
18981
|
</li>
|
|
@@ -18986,8 +18986,8 @@
|
|
|
18986
18986
|
<code class="ruby"></code>
|
|
18987
18987
|
</li>
|
|
18988
18988
|
|
|
18989
|
-
<li class="covered" data-hits="
|
|
18990
|
-
<span class="hits">
|
|
18989
|
+
<li class="covered" data-hits="299" data-linenumber="8">
|
|
18990
|
+
<span class="hits">299</span>
|
|
18991
18991
|
|
|
18992
18992
|
<code class="ruby"> @uri = Addressable::URI.parse(target.url("wp-content/plugins/#{name}/"))</code>
|
|
18993
18993
|
</li>
|
|
@@ -19016,8 +19016,8 @@
|
|
|
19016
19016
|
<code class="ruby"> def db_data</code>
|
|
19017
19017
|
</li>
|
|
19018
19018
|
|
|
19019
|
-
<li class="covered" data-hits="
|
|
19020
|
-
<span class="hits">
|
|
19019
|
+
<li class="covered" data-hits="15" data-linenumber="13">
|
|
19020
|
+
<span class="hits">15</span>
|
|
19021
19021
|
|
|
19022
19022
|
<code class="ruby"> DB::Plugin.db_data(name)</code>
|
|
19023
19023
|
</li>
|
|
@@ -19220,8 +19220,8 @@
|
|
|
19220
19220
|
<code class="ruby"> def db_data</code>
|
|
19221
19221
|
</li>
|
|
19222
19222
|
|
|
19223
|
-
<li class="covered" data-hits="
|
|
19224
|
-
<span class="hits">
|
|
19223
|
+
<li class="covered" data-hits="22" data-linenumber="19">
|
|
19224
|
+
<span class="hits">22</span>
|
|
19225
19225
|
|
|
19226
19226
|
<code class="ruby"> DB::Theme.db_data(name)</code>
|
|
19227
19227
|
</li>
|
|
@@ -20379,10 +20379,10 @@
|
|
|
20379
20379
|
<div class="source_table" id="66e55c6afef8eb3f7f5760fdb675fffe42be4db9">
|
|
20380
20380
|
<div class="header">
|
|
20381
20381
|
<h3>app/models/wp_item.rb</h3>
|
|
20382
|
-
<h4><span class="green">98.
|
|
20382
|
+
<h4><span class="green">98.46 %</span> covered</h4>
|
|
20383
20383
|
<div>
|
|
20384
|
-
<b>
|
|
20385
|
-
<span class="green"><b>
|
|
20384
|
+
<b>65</b> relevant lines.
|
|
20385
|
+
<span class="green"><b>64</b> lines covered</span> and
|
|
20386
20386
|
<span class="red"><b>1</b> lines missed.</span>
|
|
20387
20387
|
</div>
|
|
20388
20388
|
</div>
|
|
@@ -20510,20 +20510,20 @@
|
|
|
20510
20510
|
<code class="ruby"> def initialize(name, target, opts = {})</code>
|
|
20511
20511
|
</li>
|
|
20512
20512
|
|
|
20513
|
-
<li class="covered" data-hits="
|
|
20514
|
-
<span class="hits">
|
|
20513
|
+
<li class="covered" data-hits="384" data-linenumber="21">
|
|
20514
|
+
<span class="hits">384</span>
|
|
20515
20515
|
|
|
20516
20516
|
<code class="ruby"> @name = URI.decode(name)</code>
|
|
20517
20517
|
</li>
|
|
20518
20518
|
|
|
20519
|
-
<li class="covered" data-hits="
|
|
20520
|
-
<span class="hits">
|
|
20519
|
+
<li class="covered" data-hits="384" data-linenumber="22">
|
|
20520
|
+
<span class="hits">384</span>
|
|
20521
20521
|
|
|
20522
20522
|
<code class="ruby"> @target = target</code>
|
|
20523
20523
|
</li>
|
|
20524
20524
|
|
|
20525
|
-
<li class="covered" data-hits="
|
|
20526
|
-
<span class="hits">
|
|
20525
|
+
<li class="covered" data-hits="384" data-linenumber="23">
|
|
20526
|
+
<span class="hits">384</span>
|
|
20527
20527
|
|
|
20528
20528
|
<code class="ruby"> @uri = Addressable::URI.parse(opts[:url]) if opts[:url]</code>
|
|
20529
20529
|
</li>
|
|
@@ -20540,8 +20540,8 @@
|
|
|
20540
20540
|
<code class="ruby"> # Options used to detect the version</code>
|
|
20541
20541
|
</li>
|
|
20542
20542
|
|
|
20543
|
-
<li class="covered" data-hits="
|
|
20544
|
-
<span class="hits">
|
|
20543
|
+
<li class="covered" data-hits="384" data-linenumber="26">
|
|
20544
|
+
<span class="hits">384</span>
|
|
20545
20545
|
|
|
20546
20546
|
<code class="ruby"> @detection_opts = { mode: opts[:mode], confidence_threshold: opts[:version_all] ? 0 : 100 }</code>
|
|
20547
20547
|
</li>
|
|
@@ -20552,8 +20552,8 @@
|
|
|
20552
20552
|
<code class="ruby"></code>
|
|
20553
20553
|
</li>
|
|
20554
20554
|
|
|
20555
|
-
<li class="covered" data-hits="
|
|
20556
|
-
<span class="hits">
|
|
20555
|
+
<li class="covered" data-hits="384" data-linenumber="28">
|
|
20556
|
+
<span class="hits">384</span>
|
|
20557
20557
|
|
|
20558
20558
|
<code class="ruby"> parse_finding_options(opts)</code>
|
|
20559
20559
|
</li>
|
|
@@ -20732,10 +20732,10 @@
|
|
|
20732
20732
|
<code class="ruby"> def latest_version</code>
|
|
20733
20733
|
</li>
|
|
20734
20734
|
|
|
20735
|
-
<li class="covered" data-hits="
|
|
20736
|
-
<span class="hits">
|
|
20735
|
+
<li class="covered" data-hits="17" data-linenumber="58">
|
|
20736
|
+
<span class="hits">17</span>
|
|
20737
20737
|
|
|
20738
|
-
<code class="ruby"> @latest_version ||= db_data['latest_version']</code>
|
|
20738
|
+
<code class="ruby"> @latest_version ||= db_data['latest_version'] ? WPScan::Version.new(db_data['latest_version']) : nil</code>
|
|
20739
20739
|
</li>
|
|
20740
20740
|
|
|
20741
20741
|
<li class="never" data-hits="" data-linenumber="59">
|
|
@@ -20789,454 +20789,538 @@
|
|
|
20789
20789
|
<li class="never" data-hits="" data-linenumber="67">
|
|
20790
20790
|
|
|
20791
20791
|
|
|
20792
|
+
<code class="ruby"> # @return [ String ]</code>
|
|
20793
|
+
</li>
|
|
20794
|
+
|
|
20795
|
+
<li class="covered" data-hits="1" data-linenumber="68">
|
|
20796
|
+
<span class="hits">1</span>
|
|
20797
|
+
|
|
20798
|
+
<code class="ruby"> def last_updated</code>
|
|
20799
|
+
</li>
|
|
20800
|
+
|
|
20801
|
+
<li class="covered" data-hits="8" data-linenumber="69">
|
|
20802
|
+
<span class="hits">8</span>
|
|
20803
|
+
|
|
20804
|
+
<code class="ruby"> @last_updated ||= db_data['last_updated']</code>
|
|
20805
|
+
</li>
|
|
20806
|
+
|
|
20807
|
+
<li class="never" data-hits="" data-linenumber="70">
|
|
20808
|
+
|
|
20809
|
+
|
|
20810
|
+
<code class="ruby"> end</code>
|
|
20811
|
+
</li>
|
|
20812
|
+
|
|
20813
|
+
<li class="never" data-hits="" data-linenumber="71">
|
|
20814
|
+
|
|
20815
|
+
|
|
20816
|
+
<code class="ruby"></code>
|
|
20817
|
+
</li>
|
|
20818
|
+
|
|
20819
|
+
<li class="never" data-hits="" data-linenumber="72">
|
|
20820
|
+
|
|
20821
|
+
|
|
20822
|
+
<code class="ruby"> # @return [ Boolean ]</code>
|
|
20823
|
+
</li>
|
|
20824
|
+
|
|
20825
|
+
<li class="covered" data-hits="1" data-linenumber="73">
|
|
20826
|
+
<span class="hits">1</span>
|
|
20827
|
+
|
|
20828
|
+
<code class="ruby"> def outdated?</code>
|
|
20829
|
+
</li>
|
|
20830
|
+
|
|
20831
|
+
<li class="covered" data-hits="8" data-linenumber="74">
|
|
20832
|
+
<span class="hits">8</span>
|
|
20833
|
+
|
|
20834
|
+
<code class="ruby"> @outdated ||= if version && latest_version</code>
|
|
20835
|
+
</li>
|
|
20836
|
+
|
|
20837
|
+
<li class="covered" data-hits="2" data-linenumber="75">
|
|
20838
|
+
<span class="hits">2</span>
|
|
20839
|
+
|
|
20840
|
+
<code class="ruby"> version < latest_version</code>
|
|
20841
|
+
</li>
|
|
20842
|
+
|
|
20843
|
+
<li class="never" data-hits="" data-linenumber="76">
|
|
20844
|
+
|
|
20845
|
+
|
|
20846
|
+
<code class="ruby"> else</code>
|
|
20847
|
+
</li>
|
|
20848
|
+
|
|
20849
|
+
<li class="covered" data-hits="6" data-linenumber="77">
|
|
20850
|
+
<span class="hits">6</span>
|
|
20851
|
+
|
|
20852
|
+
<code class="ruby"> false</code>
|
|
20853
|
+
</li>
|
|
20854
|
+
|
|
20855
|
+
<li class="covered" data-hits="8" data-linenumber="78">
|
|
20856
|
+
<span class="hits">8</span>
|
|
20857
|
+
|
|
20858
|
+
<code class="ruby"> end</code>
|
|
20859
|
+
</li>
|
|
20860
|
+
|
|
20861
|
+
<li class="never" data-hits="" data-linenumber="79">
|
|
20862
|
+
|
|
20863
|
+
|
|
20864
|
+
<code class="ruby"> end</code>
|
|
20865
|
+
</li>
|
|
20866
|
+
|
|
20867
|
+
<li class="never" data-hits="" data-linenumber="80">
|
|
20868
|
+
|
|
20869
|
+
|
|
20870
|
+
<code class="ruby"></code>
|
|
20871
|
+
</li>
|
|
20872
|
+
|
|
20873
|
+
<li class="never" data-hits="" data-linenumber="81">
|
|
20874
|
+
|
|
20875
|
+
|
|
20792
20876
|
<code class="ruby"> # URI.encode is preferered over Addressable::URI.encode as it will encode</code>
|
|
20793
20877
|
</li>
|
|
20794
20878
|
|
|
20795
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20879
|
+
<li class="never" data-hits="" data-linenumber="82">
|
|
20796
20880
|
|
|
20797
20881
|
|
|
20798
20882
|
<code class="ruby"> # leading # character:</code>
|
|
20799
20883
|
</li>
|
|
20800
20884
|
|
|
20801
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20885
|
+
<li class="never" data-hits="" data-linenumber="83">
|
|
20802
20886
|
|
|
20803
20887
|
|
|
20804
20888
|
<code class="ruby"> # URI.encode('#t#') => %23t%23</code>
|
|
20805
20889
|
</li>
|
|
20806
20890
|
|
|
20807
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20891
|
+
<li class="never" data-hits="" data-linenumber="84">
|
|
20808
20892
|
|
|
20809
20893
|
|
|
20810
20894
|
<code class="ruby"> # Addressable::URI.encode('#t#') => #t%23</code>
|
|
20811
20895
|
</li>
|
|
20812
20896
|
|
|
20813
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20897
|
+
<li class="never" data-hits="" data-linenumber="85">
|
|
20814
20898
|
|
|
20815
20899
|
|
|
20816
20900
|
<code class="ruby"> #</code>
|
|
20817
20901
|
</li>
|
|
20818
20902
|
|
|
20819
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20903
|
+
<li class="never" data-hits="" data-linenumber="86">
|
|
20820
20904
|
|
|
20821
20905
|
|
|
20822
20906
|
<code class="ruby"> # @param [ String ] path Optional path to merge with the uri</code>
|
|
20823
20907
|
</li>
|
|
20824
20908
|
|
|
20825
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20909
|
+
<li class="never" data-hits="" data-linenumber="87">
|
|
20826
20910
|
|
|
20827
20911
|
|
|
20828
20912
|
<code class="ruby"> #</code>
|
|
20829
20913
|
</li>
|
|
20830
20914
|
|
|
20831
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20915
|
+
<li class="never" data-hits="" data-linenumber="88">
|
|
20832
20916
|
|
|
20833
20917
|
|
|
20834
20918
|
<code class="ruby"> # @return [ String ]</code>
|
|
20835
20919
|
</li>
|
|
20836
20920
|
|
|
20837
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
20921
|
+
<li class="covered" data-hits="1" data-linenumber="89">
|
|
20838
20922
|
<span class="hits">1</span>
|
|
20839
20923
|
|
|
20840
20924
|
<code class="ruby"> def url(path = nil)</code>
|
|
20841
20925
|
</li>
|
|
20842
20926
|
|
|
20843
|
-
<li class="covered" data-hits="
|
|
20844
|
-
<span class="hits">
|
|
20927
|
+
<li class="covered" data-hits="219" data-linenumber="90">
|
|
20928
|
+
<span class="hits">219</span>
|
|
20845
20929
|
|
|
20846
20930
|
<code class="ruby"> return unless @uri</code>
|
|
20847
20931
|
</li>
|
|
20848
20932
|
|
|
20849
|
-
<li class="covered" data-hits="
|
|
20850
|
-
<span class="hits">
|
|
20933
|
+
<li class="covered" data-hits="218" data-linenumber="91">
|
|
20934
|
+
<span class="hits">218</span>
|
|
20851
20935
|
|
|
20852
20936
|
<code class="ruby"> return @uri.to_s unless path</code>
|
|
20853
20937
|
</li>
|
|
20854
20938
|
|
|
20855
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20939
|
+
<li class="never" data-hits="" data-linenumber="92">
|
|
20856
20940
|
|
|
20857
20941
|
|
|
20858
20942
|
<code class="ruby"></code>
|
|
20859
20943
|
</li>
|
|
20860
20944
|
|
|
20861
|
-
<li class="covered" data-hits="
|
|
20862
|
-
<span class="hits">
|
|
20945
|
+
<li class="covered" data-hits="204" data-linenumber="93">
|
|
20946
|
+
<span class="hits">204</span>
|
|
20863
20947
|
|
|
20864
20948
|
<code class="ruby"> @uri.join(URI.encode(path)).to_s</code>
|
|
20865
20949
|
</li>
|
|
20866
20950
|
|
|
20867
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20951
|
+
<li class="never" data-hits="" data-linenumber="94">
|
|
20868
20952
|
|
|
20869
20953
|
|
|
20870
20954
|
<code class="ruby"> end</code>
|
|
20871
20955
|
</li>
|
|
20872
20956
|
|
|
20873
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20957
|
+
<li class="never" data-hits="" data-linenumber="95">
|
|
20874
20958
|
|
|
20875
20959
|
|
|
20876
20960
|
<code class="ruby"></code>
|
|
20877
20961
|
</li>
|
|
20878
20962
|
|
|
20879
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20963
|
+
<li class="never" data-hits="" data-linenumber="96">
|
|
20880
20964
|
|
|
20881
20965
|
|
|
20882
20966
|
<code class="ruby"> # @return [ Boolean ]</code>
|
|
20883
20967
|
</li>
|
|
20884
20968
|
|
|
20885
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
20969
|
+
<li class="covered" data-hits="1" data-linenumber="97">
|
|
20886
20970
|
<span class="hits">1</span>
|
|
20887
20971
|
|
|
20888
20972
|
<code class="ruby"> def ==(other)</code>
|
|
20889
20973
|
</li>
|
|
20890
20974
|
|
|
20891
|
-
<li class="covered" data-hits="1532" data-linenumber="
|
|
20975
|
+
<li class="covered" data-hits="1532" data-linenumber="98">
|
|
20892
20976
|
<span class="hits">1532</span>
|
|
20893
20977
|
|
|
20894
20978
|
<code class="ruby"> return false unless self.class == other.class</code>
|
|
20895
20979
|
</li>
|
|
20896
20980
|
|
|
20897
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20981
|
+
<li class="never" data-hits="" data-linenumber="99">
|
|
20898
20982
|
|
|
20899
20983
|
|
|
20900
20984
|
<code class="ruby"></code>
|
|
20901
20985
|
</li>
|
|
20902
20986
|
|
|
20903
|
-
<li class="covered" data-hits="1531" data-linenumber="
|
|
20987
|
+
<li class="covered" data-hits="1531" data-linenumber="100">
|
|
20904
20988
|
<span class="hits">1531</span>
|
|
20905
20989
|
|
|
20906
20990
|
<code class="ruby"> name == other.name</code>
|
|
20907
20991
|
</li>
|
|
20908
20992
|
|
|
20909
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20993
|
+
<li class="never" data-hits="" data-linenumber="101">
|
|
20910
20994
|
|
|
20911
20995
|
|
|
20912
20996
|
<code class="ruby"> end</code>
|
|
20913
20997
|
</li>
|
|
20914
20998
|
|
|
20915
|
-
<li class="never" data-hits="" data-linenumber="
|
|
20999
|
+
<li class="never" data-hits="" data-linenumber="102">
|
|
20916
21000
|
|
|
20917
21001
|
|
|
20918
21002
|
<code class="ruby"></code>
|
|
20919
21003
|
</li>
|
|
20920
21004
|
|
|
20921
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21005
|
+
<li class="covered" data-hits="1" data-linenumber="103">
|
|
20922
21006
|
<span class="hits">1</span>
|
|
20923
21007
|
|
|
20924
21008
|
<code class="ruby"> def to_s</code>
|
|
20925
21009
|
</li>
|
|
20926
21010
|
|
|
20927
|
-
<li class="covered" data-hits="1240" data-linenumber="
|
|
21011
|
+
<li class="covered" data-hits="1240" data-linenumber="104">
|
|
20928
21012
|
<span class="hits">1240</span>
|
|
20929
21013
|
|
|
20930
21014
|
<code class="ruby"> name</code>
|
|
20931
21015
|
</li>
|
|
20932
21016
|
|
|
20933
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21017
|
+
<li class="never" data-hits="" data-linenumber="105">
|
|
20934
21018
|
|
|
20935
21019
|
|
|
20936
21020
|
<code class="ruby"> end</code>
|
|
20937
21021
|
</li>
|
|
20938
21022
|
|
|
20939
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21023
|
+
<li class="never" data-hits="" data-linenumber="106">
|
|
20940
21024
|
|
|
20941
21025
|
|
|
20942
21026
|
<code class="ruby"></code>
|
|
20943
21027
|
</li>
|
|
20944
21028
|
|
|
20945
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21029
|
+
<li class="never" data-hits="" data-linenumber="107">
|
|
20946
21030
|
|
|
20947
21031
|
|
|
20948
21032
|
<code class="ruby"> # @return [ Symbol ] The Class name associated to the item name</code>
|
|
20949
21033
|
</li>
|
|
20950
21034
|
|
|
20951
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21035
|
+
<li class="covered" data-hits="1" data-linenumber="108">
|
|
20952
21036
|
<span class="hits">1</span>
|
|
20953
21037
|
|
|
20954
21038
|
<code class="ruby"> def classify_name</code>
|
|
20955
21039
|
</li>
|
|
20956
21040
|
|
|
20957
|
-
<li class="covered" data-hits="7" data-linenumber="
|
|
21041
|
+
<li class="covered" data-hits="7" data-linenumber="109">
|
|
20958
21042
|
<span class="hits">7</span>
|
|
20959
21043
|
|
|
20960
21044
|
<code class="ruby"> name.to_s.tr('-', '_').camelize.to_s.to_sym</code>
|
|
20961
21045
|
</li>
|
|
20962
21046
|
|
|
20963
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21047
|
+
<li class="never" data-hits="" data-linenumber="110">
|
|
20964
21048
|
|
|
20965
21049
|
|
|
20966
21050
|
<code class="ruby"> end</code>
|
|
20967
21051
|
</li>
|
|
20968
21052
|
|
|
20969
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21053
|
+
<li class="never" data-hits="" data-linenumber="111">
|
|
20970
21054
|
|
|
20971
21055
|
|
|
20972
21056
|
<code class="ruby"></code>
|
|
20973
21057
|
</li>
|
|
20974
21058
|
|
|
20975
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21059
|
+
<li class="never" data-hits="" data-linenumber="112">
|
|
20976
21060
|
|
|
20977
21061
|
|
|
20978
21062
|
<code class="ruby"> # @return [ String ] The readme url if found</code>
|
|
20979
21063
|
</li>
|
|
20980
21064
|
|
|
20981
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21065
|
+
<li class="covered" data-hits="1" data-linenumber="113">
|
|
20982
21066
|
<span class="hits">1</span>
|
|
20983
21067
|
|
|
20984
21068
|
<code class="ruby"> def readme_url</code>
|
|
20985
21069
|
</li>
|
|
20986
21070
|
|
|
20987
|
-
<li class="covered" data-hits="9" data-linenumber="
|
|
21071
|
+
<li class="covered" data-hits="9" data-linenumber="114">
|
|
20988
21072
|
<span class="hits">9</span>
|
|
20989
21073
|
|
|
20990
21074
|
<code class="ruby"> return if detection_opts[:mode] == :passive</code>
|
|
20991
21075
|
</li>
|
|
20992
21076
|
|
|
20993
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21077
|
+
<li class="never" data-hits="" data-linenumber="115">
|
|
20994
21078
|
|
|
20995
21079
|
|
|
20996
21080
|
<code class="ruby"></code>
|
|
20997
21081
|
</li>
|
|
20998
21082
|
|
|
20999
|
-
<li class="covered" data-hits="9" data-linenumber="
|
|
21083
|
+
<li class="covered" data-hits="9" data-linenumber="116">
|
|
21000
21084
|
<span class="hits">9</span>
|
|
21001
21085
|
|
|
21002
21086
|
<code class="ruby"> if @readme_url.nil?</code>
|
|
21003
21087
|
</li>
|
|
21004
21088
|
|
|
21005
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
21089
|
+
<li class="covered" data-hits="6" data-linenumber="117">
|
|
21006
21090
|
<span class="hits">6</span>
|
|
21007
21091
|
|
|
21008
21092
|
<code class="ruby"> READMES.each do |path|</code>
|
|
21009
21093
|
</li>
|
|
21010
21094
|
|
|
21011
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
21095
|
+
<li class="covered" data-hits="6" data-linenumber="118">
|
|
21012
21096
|
<span class="hits">6</span>
|
|
21013
21097
|
|
|
21014
21098
|
<code class="ruby"> return @readme_url = url(path) if Browser.get(url(path)).code == 200</code>
|
|
21015
21099
|
</li>
|
|
21016
21100
|
|
|
21017
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21101
|
+
<li class="never" data-hits="" data-linenumber="119">
|
|
21018
21102
|
|
|
21019
21103
|
|
|
21020
21104
|
<code class="ruby"> end</code>
|
|
21021
21105
|
</li>
|
|
21022
21106
|
|
|
21023
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21107
|
+
<li class="never" data-hits="" data-linenumber="120">
|
|
21024
21108
|
|
|
21025
21109
|
|
|
21026
21110
|
<code class="ruby"> end</code>
|
|
21027
21111
|
</li>
|
|
21028
21112
|
|
|
21029
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21113
|
+
<li class="never" data-hits="" data-linenumber="121">
|
|
21030
21114
|
|
|
21031
21115
|
|
|
21032
21116
|
<code class="ruby"></code>
|
|
21033
21117
|
</li>
|
|
21034
21118
|
|
|
21035
|
-
<li class="covered" data-hits="3" data-linenumber="
|
|
21119
|
+
<li class="covered" data-hits="3" data-linenumber="122">
|
|
21036
21120
|
<span class="hits">3</span>
|
|
21037
21121
|
|
|
21038
21122
|
<code class="ruby"> @readme_url</code>
|
|
21039
21123
|
</li>
|
|
21040
21124
|
|
|
21041
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21125
|
+
<li class="never" data-hits="" data-linenumber="123">
|
|
21042
21126
|
|
|
21043
21127
|
|
|
21044
21128
|
<code class="ruby"> end</code>
|
|
21045
21129
|
</li>
|
|
21046
21130
|
|
|
21047
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21131
|
+
<li class="never" data-hits="" data-linenumber="124">
|
|
21048
21132
|
|
|
21049
21133
|
|
|
21050
21134
|
<code class="ruby"></code>
|
|
21051
21135
|
</li>
|
|
21052
21136
|
|
|
21053
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21137
|
+
<li class="never" data-hits="" data-linenumber="125">
|
|
21054
21138
|
|
|
21055
21139
|
|
|
21056
21140
|
<code class="ruby"> # @return [ String, false ] The changelog urr if found</code>
|
|
21057
21141
|
</li>
|
|
21058
21142
|
|
|
21059
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21143
|
+
<li class="covered" data-hits="1" data-linenumber="126">
|
|
21060
21144
|
<span class="hits">1</span>
|
|
21061
21145
|
|
|
21062
21146
|
<code class="ruby"> def changelog_url</code>
|
|
21063
21147
|
</li>
|
|
21064
21148
|
|
|
21065
|
-
<li class="covered" data-hits="9" data-linenumber="
|
|
21149
|
+
<li class="covered" data-hits="9" data-linenumber="127">
|
|
21066
21150
|
<span class="hits">9</span>
|
|
21067
21151
|
|
|
21068
21152
|
<code class="ruby"> return if detection_opts[:mode] == :passive</code>
|
|
21069
21153
|
</li>
|
|
21070
21154
|
|
|
21071
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21155
|
+
<li class="never" data-hits="" data-linenumber="128">
|
|
21072
21156
|
|
|
21073
21157
|
|
|
21074
21158
|
<code class="ruby"></code>
|
|
21075
21159
|
</li>
|
|
21076
21160
|
|
|
21077
|
-
<li class="covered" data-hits="9" data-linenumber="
|
|
21161
|
+
<li class="covered" data-hits="9" data-linenumber="129">
|
|
21078
21162
|
<span class="hits">9</span>
|
|
21079
21163
|
|
|
21080
21164
|
<code class="ruby"> if @changelog_url.nil?</code>
|
|
21081
21165
|
</li>
|
|
21082
21166
|
|
|
21083
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
21167
|
+
<li class="covered" data-hits="6" data-linenumber="130">
|
|
21084
21168
|
<span class="hits">6</span>
|
|
21085
21169
|
|
|
21086
21170
|
<code class="ruby"> CHANGELOGS.each do |path|</code>
|
|
21087
21171
|
</li>
|
|
21088
21172
|
|
|
21089
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
21173
|
+
<li class="covered" data-hits="6" data-linenumber="131">
|
|
21090
21174
|
<span class="hits">6</span>
|
|
21091
21175
|
|
|
21092
21176
|
<code class="ruby"> return @changelog_url = url(path) if Browser.get(url(path)).code == 200</code>
|
|
21093
21177
|
</li>
|
|
21094
21178
|
|
|
21095
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21179
|
+
<li class="never" data-hits="" data-linenumber="132">
|
|
21096
21180
|
|
|
21097
21181
|
|
|
21098
21182
|
<code class="ruby"> end</code>
|
|
21099
21183
|
</li>
|
|
21100
21184
|
|
|
21101
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21185
|
+
<li class="never" data-hits="" data-linenumber="133">
|
|
21102
21186
|
|
|
21103
21187
|
|
|
21104
21188
|
<code class="ruby"> end</code>
|
|
21105
21189
|
</li>
|
|
21106
21190
|
|
|
21107
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21191
|
+
<li class="never" data-hits="" data-linenumber="134">
|
|
21108
21192
|
|
|
21109
21193
|
|
|
21110
21194
|
<code class="ruby"></code>
|
|
21111
21195
|
</li>
|
|
21112
21196
|
|
|
21113
|
-
<li class="covered" data-hits="3" data-linenumber="
|
|
21197
|
+
<li class="covered" data-hits="3" data-linenumber="135">
|
|
21114
21198
|
<span class="hits">3</span>
|
|
21115
21199
|
|
|
21116
21200
|
<code class="ruby"> @changelog_url</code>
|
|
21117
21201
|
</li>
|
|
21118
21202
|
|
|
21119
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21203
|
+
<li class="never" data-hits="" data-linenumber="136">
|
|
21120
21204
|
|
|
21121
21205
|
|
|
21122
21206
|
<code class="ruby"> end</code>
|
|
21123
21207
|
</li>
|
|
21124
21208
|
|
|
21125
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21209
|
+
<li class="never" data-hits="" data-linenumber="137">
|
|
21126
21210
|
|
|
21127
21211
|
|
|
21128
21212
|
<code class="ruby"></code>
|
|
21129
21213
|
</li>
|
|
21130
21214
|
|
|
21131
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21215
|
+
<li class="never" data-hits="" data-linenumber="138">
|
|
21132
21216
|
|
|
21133
21217
|
|
|
21134
21218
|
<code class="ruby"> # @param [ String ] path</code>
|
|
21135
21219
|
</li>
|
|
21136
21220
|
|
|
21137
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21221
|
+
<li class="never" data-hits="" data-linenumber="139">
|
|
21138
21222
|
|
|
21139
21223
|
|
|
21140
21224
|
<code class="ruby"> # @param [ Hash ] params The request params</code>
|
|
21141
21225
|
</li>
|
|
21142
21226
|
|
|
21143
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21227
|
+
<li class="never" data-hits="" data-linenumber="140">
|
|
21144
21228
|
|
|
21145
21229
|
|
|
21146
21230
|
<code class="ruby"> #</code>
|
|
21147
21231
|
</li>
|
|
21148
21232
|
|
|
21149
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21233
|
+
<li class="never" data-hits="" data-linenumber="141">
|
|
21150
21234
|
|
|
21151
21235
|
|
|
21152
21236
|
<code class="ruby"> # @return [ Boolean ]</code>
|
|
21153
21237
|
</li>
|
|
21154
21238
|
|
|
21155
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21239
|
+
<li class="covered" data-hits="1" data-linenumber="142">
|
|
21156
21240
|
<span class="hits">1</span>
|
|
21157
21241
|
|
|
21158
21242
|
<code class="ruby"> def directory_listing?(path = nil, params = {})</code>
|
|
21159
21243
|
</li>
|
|
21160
21244
|
|
|
21161
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
21245
|
+
<li class="covered" data-hits="6" data-linenumber="143">
|
|
21162
21246
|
<span class="hits">6</span>
|
|
21163
21247
|
|
|
21164
21248
|
<code class="ruby"> return if detection_opts[:mode] == :passive</code>
|
|
21165
21249
|
</li>
|
|
21166
21250
|
|
|
21167
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
21251
|
+
<li class="covered" data-hits="6" data-linenumber="144">
|
|
21168
21252
|
<span class="hits">6</span>
|
|
21169
21253
|
|
|
21170
21254
|
<code class="ruby"> super(path, params)</code>
|
|
21171
21255
|
</li>
|
|
21172
21256
|
|
|
21173
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21257
|
+
<li class="never" data-hits="" data-linenumber="145">
|
|
21174
21258
|
|
|
21175
21259
|
|
|
21176
21260
|
<code class="ruby"> end</code>
|
|
21177
21261
|
</li>
|
|
21178
21262
|
|
|
21179
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21263
|
+
<li class="never" data-hits="" data-linenumber="146">
|
|
21180
21264
|
|
|
21181
21265
|
|
|
21182
21266
|
<code class="ruby"></code>
|
|
21183
21267
|
</li>
|
|
21184
21268
|
|
|
21185
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21269
|
+
<li class="never" data-hits="" data-linenumber="147">
|
|
21186
21270
|
|
|
21187
21271
|
|
|
21188
21272
|
<code class="ruby"> # @param [ String ] path</code>
|
|
21189
21273
|
</li>
|
|
21190
21274
|
|
|
21191
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21275
|
+
<li class="never" data-hits="" data-linenumber="148">
|
|
21192
21276
|
|
|
21193
21277
|
|
|
21194
21278
|
<code class="ruby"> # @param [ Hash ] params The request params</code>
|
|
21195
21279
|
</li>
|
|
21196
21280
|
|
|
21197
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21281
|
+
<li class="never" data-hits="" data-linenumber="149">
|
|
21198
21282
|
|
|
21199
21283
|
|
|
21200
21284
|
<code class="ruby"> #</code>
|
|
21201
21285
|
</li>
|
|
21202
21286
|
|
|
21203
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21287
|
+
<li class="never" data-hits="" data-linenumber="150">
|
|
21204
21288
|
|
|
21205
21289
|
|
|
21206
21290
|
<code class="ruby"> # @return [ Boolean ]</code>
|
|
21207
21291
|
</li>
|
|
21208
21292
|
|
|
21209
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21293
|
+
<li class="covered" data-hits="1" data-linenumber="151">
|
|
21210
21294
|
<span class="hits">1</span>
|
|
21211
21295
|
|
|
21212
21296
|
<code class="ruby"> def error_log?(path = 'error_log', params = {})</code>
|
|
21213
21297
|
</li>
|
|
21214
21298
|
|
|
21215
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
21299
|
+
<li class="covered" data-hits="6" data-linenumber="152">
|
|
21216
21300
|
<span class="hits">6</span>
|
|
21217
21301
|
|
|
21218
21302
|
<code class="ruby"> return if detection_opts[:mode] == :passive</code>
|
|
21219
21303
|
</li>
|
|
21220
21304
|
|
|
21221
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
21305
|
+
<li class="covered" data-hits="6" data-linenumber="153">
|
|
21222
21306
|
<span class="hits">6</span>
|
|
21223
21307
|
|
|
21224
21308
|
<code class="ruby"> super(path, params)</code>
|
|
21225
21309
|
</li>
|
|
21226
21310
|
|
|
21227
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21311
|
+
<li class="never" data-hits="" data-linenumber="154">
|
|
21228
21312
|
|
|
21229
21313
|
|
|
21230
21314
|
<code class="ruby"> end</code>
|
|
21231
21315
|
</li>
|
|
21232
21316
|
|
|
21233
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21317
|
+
<li class="never" data-hits="" data-linenumber="155">
|
|
21234
21318
|
|
|
21235
21319
|
|
|
21236
21320
|
<code class="ruby"> end</code>
|
|
21237
21321
|
</li>
|
|
21238
21322
|
|
|
21239
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21323
|
+
<li class="never" data-hits="" data-linenumber="156">
|
|
21240
21324
|
|
|
21241
21325
|
|
|
21242
21326
|
<code class="ruby">end</code>
|
|
@@ -21710,259 +21794,277 @@
|
|
|
21710
21794
|
<code class="ruby"># Gems</code>
|
|
21711
21795
|
</li>
|
|
21712
21796
|
|
|
21713
|
-
<li class="
|
|
21797
|
+
<li class="never" data-hits="" data-linenumber="2">
|
|
21798
|
+
|
|
21799
|
+
|
|
21800
|
+
<code class="ruby"># Believe it or not, active_support MUST be the first one,</code>
|
|
21801
|
+
</li>
|
|
21802
|
+
|
|
21803
|
+
<li class="never" data-hits="" data-linenumber="3">
|
|
21804
|
+
|
|
21805
|
+
|
|
21806
|
+
<code class="ruby"># otherwise encoding issues can happen when using JSON format.</code>
|
|
21807
|
+
</li>
|
|
21808
|
+
|
|
21809
|
+
<li class="never" data-hits="" data-linenumber="4">
|
|
21810
|
+
|
|
21811
|
+
|
|
21812
|
+
<code class="ruby"># Not kidding.</code>
|
|
21813
|
+
</li>
|
|
21814
|
+
|
|
21815
|
+
<li class="covered" data-hits="1" data-linenumber="5">
|
|
21714
21816
|
<span class="hits">1</span>
|
|
21715
21817
|
|
|
21716
|
-
<code class="ruby">require '
|
|
21818
|
+
<code class="ruby">require 'active_support/all'</code>
|
|
21717
21819
|
</li>
|
|
21718
21820
|
|
|
21719
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21821
|
+
<li class="covered" data-hits="1" data-linenumber="6">
|
|
21720
21822
|
<span class="hits">1</span>
|
|
21721
21823
|
|
|
21722
|
-
<code class="ruby">require '
|
|
21824
|
+
<code class="ruby">require 'cms_scanner'</code>
|
|
21723
21825
|
</li>
|
|
21724
21826
|
|
|
21725
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21827
|
+
<li class="covered" data-hits="1" data-linenumber="7">
|
|
21726
21828
|
<span class="hits">1</span>
|
|
21727
21829
|
|
|
21728
|
-
<code class="ruby">require '
|
|
21830
|
+
<code class="ruby">require 'yajl/json_gem'</code>
|
|
21729
21831
|
</li>
|
|
21730
21832
|
|
|
21731
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21833
|
+
<li class="covered" data-hits="1" data-linenumber="8">
|
|
21732
21834
|
<span class="hits">1</span>
|
|
21733
21835
|
|
|
21734
|
-
<code class="ruby">require '
|
|
21836
|
+
<code class="ruby">require 'addressable/uri'</code>
|
|
21735
21837
|
</li>
|
|
21736
21838
|
|
|
21737
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21839
|
+
<li class="never" data-hits="" data-linenumber="9">
|
|
21738
21840
|
|
|
21739
21841
|
|
|
21740
21842
|
<code class="ruby"># Standard Lib</code>
|
|
21741
21843
|
</li>
|
|
21742
21844
|
|
|
21743
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21845
|
+
<li class="covered" data-hits="1" data-linenumber="10">
|
|
21744
21846
|
<span class="hits">1</span>
|
|
21745
21847
|
|
|
21746
21848
|
<code class="ruby">require 'uri'</code>
|
|
21747
21849
|
</li>
|
|
21748
21850
|
|
|
21749
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21851
|
+
<li class="covered" data-hits="1" data-linenumber="11">
|
|
21750
21852
|
<span class="hits">1</span>
|
|
21751
21853
|
|
|
21752
21854
|
<code class="ruby">require 'time'</code>
|
|
21753
21855
|
</li>
|
|
21754
21856
|
|
|
21755
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21857
|
+
<li class="covered" data-hits="1" data-linenumber="12">
|
|
21756
21858
|
<span class="hits">1</span>
|
|
21757
21859
|
|
|
21758
21860
|
<code class="ruby">require 'readline'</code>
|
|
21759
21861
|
</li>
|
|
21760
21862
|
|
|
21761
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21863
|
+
<li class="covered" data-hits="1" data-linenumber="13">
|
|
21762
21864
|
<span class="hits">1</span>
|
|
21763
21865
|
|
|
21764
21866
|
<code class="ruby">require 'securerandom'</code>
|
|
21765
21867
|
</li>
|
|
21766
21868
|
|
|
21767
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21869
|
+
<li class="never" data-hits="" data-linenumber="14">
|
|
21768
21870
|
|
|
21769
21871
|
|
|
21770
21872
|
<code class="ruby"># Custom Libs</code>
|
|
21771
21873
|
</li>
|
|
21772
21874
|
|
|
21773
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21875
|
+
<li class="covered" data-hits="1" data-linenumber="15">
|
|
21774
21876
|
<span class="hits">1</span>
|
|
21775
21877
|
|
|
21776
21878
|
<code class="ruby">require 'wpscan/helper'</code>
|
|
21777
21879
|
</li>
|
|
21778
21880
|
|
|
21779
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21881
|
+
<li class="covered" data-hits="1" data-linenumber="16">
|
|
21780
21882
|
<span class="hits">1</span>
|
|
21781
21883
|
|
|
21782
21884
|
<code class="ruby">require 'wpscan/db'</code>
|
|
21783
21885
|
</li>
|
|
21784
21886
|
|
|
21785
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21887
|
+
<li class="covered" data-hits="1" data-linenumber="17">
|
|
21786
21888
|
<span class="hits">1</span>
|
|
21787
21889
|
|
|
21788
21890
|
<code class="ruby">require 'wpscan/version'</code>
|
|
21789
21891
|
</li>
|
|
21790
21892
|
|
|
21791
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21893
|
+
<li class="covered" data-hits="1" data-linenumber="18">
|
|
21792
21894
|
<span class="hits">1</span>
|
|
21793
21895
|
|
|
21794
21896
|
<code class="ruby">require 'wpscan/errors/wordpress'</code>
|
|
21795
21897
|
</li>
|
|
21796
21898
|
|
|
21797
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21899
|
+
<li class="covered" data-hits="1" data-linenumber="19">
|
|
21798
21900
|
<span class="hits">1</span>
|
|
21799
21901
|
|
|
21800
21902
|
<code class="ruby">require 'wpscan/errors/http'</code>
|
|
21801
21903
|
</li>
|
|
21802
21904
|
|
|
21803
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21905
|
+
<li class="covered" data-hits="1" data-linenumber="20">
|
|
21804
21906
|
<span class="hits">1</span>
|
|
21805
21907
|
|
|
21806
21908
|
<code class="ruby">require 'wpscan/errors/update'</code>
|
|
21807
21909
|
</li>
|
|
21808
21910
|
|
|
21809
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21911
|
+
<li class="covered" data-hits="1" data-linenumber="21">
|
|
21810
21912
|
<span class="hits">1</span>
|
|
21811
21913
|
|
|
21812
21914
|
<code class="ruby">require 'wpscan/browser'</code>
|
|
21813
21915
|
</li>
|
|
21814
21916
|
|
|
21815
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21917
|
+
<li class="covered" data-hits="1" data-linenumber="22">
|
|
21816
21918
|
<span class="hits">1</span>
|
|
21817
21919
|
|
|
21818
21920
|
<code class="ruby">require 'wpscan/target'</code>
|
|
21819
21921
|
</li>
|
|
21820
21922
|
|
|
21821
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21923
|
+
<li class="covered" data-hits="1" data-linenumber="23">
|
|
21822
21924
|
<span class="hits">1</span>
|
|
21823
21925
|
|
|
21824
21926
|
<code class="ruby">require 'wpscan/finders'</code>
|
|
21825
21927
|
</li>
|
|
21826
21928
|
|
|
21827
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21929
|
+
<li class="covered" data-hits="1" data-linenumber="24">
|
|
21828
21930
|
<span class="hits">1</span>
|
|
21829
21931
|
|
|
21830
21932
|
<code class="ruby">require 'wpscan/controller'</code>
|
|
21831
21933
|
</li>
|
|
21832
21934
|
|
|
21833
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21935
|
+
<li class="covered" data-hits="1" data-linenumber="25">
|
|
21834
21936
|
<span class="hits">1</span>
|
|
21835
21937
|
|
|
21836
21938
|
<code class="ruby">require 'wpscan/controllers'</code>
|
|
21837
21939
|
</li>
|
|
21838
21940
|
|
|
21839
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21941
|
+
<li class="covered" data-hits="1" data-linenumber="26">
|
|
21840
21942
|
<span class="hits">1</span>
|
|
21841
21943
|
|
|
21842
21944
|
<code class="ruby">require 'wpscan/references'</code>
|
|
21843
21945
|
</li>
|
|
21844
21946
|
|
|
21845
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21947
|
+
<li class="covered" data-hits="1" data-linenumber="27">
|
|
21846
21948
|
<span class="hits">1</span>
|
|
21847
21949
|
|
|
21848
21950
|
<code class="ruby">require 'wpscan/vulnerable'</code>
|
|
21849
21951
|
</li>
|
|
21850
21952
|
|
|
21851
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21953
|
+
<li class="covered" data-hits="1" data-linenumber="28">
|
|
21852
21954
|
<span class="hits">1</span>
|
|
21853
21955
|
|
|
21854
21956
|
<code class="ruby">require 'wpscan/vulnerability'</code>
|
|
21855
21957
|
</li>
|
|
21856
21958
|
|
|
21857
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21959
|
+
<li class="never" data-hits="" data-linenumber="29">
|
|
21858
21960
|
|
|
21859
21961
|
|
|
21860
21962
|
<code class="ruby"></code>
|
|
21861
21963
|
</li>
|
|
21862
21964
|
|
|
21863
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21965
|
+
<li class="covered" data-hits="1" data-linenumber="30">
|
|
21864
21966
|
<span class="hits">1</span>
|
|
21865
21967
|
|
|
21866
21968
|
<code class="ruby">Encoding.default_external = Encoding::UTF_8</code>
|
|
21867
21969
|
</li>
|
|
21868
21970
|
|
|
21869
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21971
|
+
<li class="never" data-hits="" data-linenumber="31">
|
|
21870
21972
|
|
|
21871
21973
|
|
|
21872
21974
|
<code class="ruby"></code>
|
|
21873
21975
|
</li>
|
|
21874
21976
|
|
|
21875
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21977
|
+
<li class="never" data-hits="" data-linenumber="32">
|
|
21876
21978
|
|
|
21877
21979
|
|
|
21878
21980
|
<code class="ruby"># WPScan</code>
|
|
21879
21981
|
</li>
|
|
21880
21982
|
|
|
21881
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21983
|
+
<li class="covered" data-hits="1" data-linenumber="33">
|
|
21882
21984
|
<span class="hits">1</span>
|
|
21883
21985
|
|
|
21884
21986
|
<code class="ruby">module WPScan</code>
|
|
21885
21987
|
</li>
|
|
21886
21988
|
|
|
21887
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
21989
|
+
<li class="covered" data-hits="1" data-linenumber="34">
|
|
21888
21990
|
<span class="hits">1</span>
|
|
21889
21991
|
|
|
21890
21992
|
<code class="ruby"> include CMSScanner</code>
|
|
21891
21993
|
</li>
|
|
21892
21994
|
|
|
21893
|
-
<li class="never" data-hits="" data-linenumber="
|
|
21995
|
+
<li class="never" data-hits="" data-linenumber="35">
|
|
21894
21996
|
|
|
21895
21997
|
|
|
21896
21998
|
<code class="ruby"></code>
|
|
21897
21999
|
</li>
|
|
21898
22000
|
|
|
21899
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
22001
|
+
<li class="covered" data-hits="1" data-linenumber="36">
|
|
21900
22002
|
<span class="hits">1</span>
|
|
21901
22003
|
|
|
21902
22004
|
<code class="ruby"> APP_DIR = Pathname.new(__FILE__).dirname.join('..', 'app').expand_path</code>
|
|
21903
22005
|
</li>
|
|
21904
22006
|
|
|
21905
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
22007
|
+
<li class="covered" data-hits="1" data-linenumber="37">
|
|
21906
22008
|
<span class="hits">1</span>
|
|
21907
22009
|
|
|
21908
22010
|
<code class="ruby"> DB_DIR = File.join(Dir.home, '.wpscan', 'db')</code>
|
|
21909
22011
|
</li>
|
|
21910
22012
|
|
|
21911
|
-
<li class="never" data-hits="" data-linenumber="
|
|
22013
|
+
<li class="never" data-hits="" data-linenumber="38">
|
|
21912
22014
|
|
|
21913
22015
|
|
|
21914
22016
|
<code class="ruby"></code>
|
|
21915
22017
|
</li>
|
|
21916
22018
|
|
|
21917
|
-
<li class="never" data-hits="" data-linenumber="
|
|
22019
|
+
<li class="never" data-hits="" data-linenumber="39">
|
|
21918
22020
|
|
|
21919
22021
|
|
|
21920
22022
|
<code class="ruby"> # Override, otherwise it would be returned as 'wp_scan'</code>
|
|
21921
22023
|
</li>
|
|
21922
22024
|
|
|
21923
|
-
<li class="never" data-hits="" data-linenumber="
|
|
22025
|
+
<li class="never" data-hits="" data-linenumber="40">
|
|
21924
22026
|
|
|
21925
22027
|
|
|
21926
22028
|
<code class="ruby"> #</code>
|
|
21927
22029
|
</li>
|
|
21928
22030
|
|
|
21929
|
-
<li class="never" data-hits="" data-linenumber="
|
|
22031
|
+
<li class="never" data-hits="" data-linenumber="41">
|
|
21930
22032
|
|
|
21931
22033
|
|
|
21932
22034
|
<code class="ruby"> # @return [ String ]</code>
|
|
21933
22035
|
</li>
|
|
21934
22036
|
|
|
21935
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
22037
|
+
<li class="covered" data-hits="1" data-linenumber="42">
|
|
21936
22038
|
<span class="hits">1</span>
|
|
21937
22039
|
|
|
21938
22040
|
<code class="ruby"> def self.app_name</code>
|
|
21939
22041
|
</li>
|
|
21940
22042
|
|
|
21941
|
-
<li class="covered" data-hits="83" data-linenumber="
|
|
22043
|
+
<li class="covered" data-hits="83" data-linenumber="43">
|
|
21942
22044
|
<span class="hits">83</span>
|
|
21943
22045
|
|
|
21944
22046
|
<code class="ruby"> 'wpscan'</code>
|
|
21945
22047
|
</li>
|
|
21946
22048
|
|
|
21947
|
-
<li class="never" data-hits="" data-linenumber="
|
|
22049
|
+
<li class="never" data-hits="" data-linenumber="44">
|
|
21948
22050
|
|
|
21949
22051
|
|
|
21950
22052
|
<code class="ruby"> end</code>
|
|
21951
22053
|
</li>
|
|
21952
22054
|
|
|
21953
|
-
<li class="never" data-hits="" data-linenumber="
|
|
22055
|
+
<li class="never" data-hits="" data-linenumber="45">
|
|
21954
22056
|
|
|
21955
22057
|
|
|
21956
22058
|
<code class="ruby">end</code>
|
|
21957
22059
|
</li>
|
|
21958
22060
|
|
|
21959
|
-
<li class="never" data-hits="" data-linenumber="
|
|
22061
|
+
<li class="never" data-hits="" data-linenumber="46">
|
|
21960
22062
|
|
|
21961
22063
|
|
|
21962
22064
|
<code class="ruby"></code>
|
|
21963
22065
|
</li>
|
|
21964
22066
|
|
|
21965
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
22067
|
+
<li class="covered" data-hits="1" data-linenumber="47">
|
|
21966
22068
|
<span class="hits">1</span>
|
|
21967
22069
|
|
|
21968
22070
|
<code class="ruby">require "#{WPScan::APP_DIR}/app"</code>
|
|
@@ -24356,8 +24458,8 @@
|
|
|
24356
24458
|
<code class="ruby"> def self.db_data(identifier)</code>
|
|
24357
24459
|
</li>
|
|
24358
24460
|
|
|
24359
|
-
<li class="covered" data-hits="
|
|
24360
|
-
<span class="hits">
|
|
24461
|
+
<li class="covered" data-hits="52" data-linenumber="9">
|
|
24462
|
+
<span class="hits">52</span>
|
|
24361
24463
|
|
|
24362
24464
|
<code class="ruby"> db[identifier] || {}</code>
|
|
24363
24465
|
</li>
|
|
@@ -24386,8 +24488,8 @@
|
|
|
24386
24488
|
<code class="ruby"> def self.db</code>
|
|
24387
24489
|
</li>
|
|
24388
24490
|
|
|
24389
|
-
<li class="covered" data-hits="
|
|
24390
|
-
<span class="hits">
|
|
24491
|
+
<li class="covered" data-hits="58" data-linenumber="14">
|
|
24492
|
+
<span class="hits">58</span>
|
|
24391
24493
|
|
|
24392
24494
|
<code class="ruby"> @db ||= read_json_file(db_file)</code>
|
|
24393
24495
|
</li>
|
|
@@ -26930,8 +27032,8 @@
|
|
|
26930
27032
|
<code class="ruby"> def plugins_dir</code>
|
|
26931
27033
|
</li>
|
|
26932
27034
|
|
|
26933
|
-
<li class="covered" data-hits="
|
|
26934
|
-
<span class="hits">
|
|
27035
|
+
<li class="covered" data-hits="321" data-linenumber="40">
|
|
27036
|
+
<span class="hits">321</span>
|
|
26935
27037
|
|
|
26936
27038
|
<code class="ruby"> @plugins_dir ||= "#{content_dir}/plugins"</code>
|
|
26937
27039
|
</li>
|
|
@@ -27158,8 +27260,8 @@
|
|
|
27158
27260
|
<code class="ruby"> def url(path = nil)</code>
|
|
27159
27261
|
</li>
|
|
27160
27262
|
|
|
27161
|
-
<li class="covered" data-hits="
|
|
27162
|
-
<span class="hits">
|
|
27263
|
+
<li class="covered" data-hits="588" data-linenumber="78">
|
|
27264
|
+
<span class="hits">588</span>
|
|
27163
27265
|
|
|
27164
27266
|
<code class="ruby"> return @uri.to_s unless path</code>
|
|
27165
27267
|
</li>
|
|
@@ -27170,20 +27272,20 @@
|
|
|
27170
27272
|
<code class="ruby"></code>
|
|
27171
27273
|
</li>
|
|
27172
27274
|
|
|
27173
|
-
<li class="covered" data-hits="
|
|
27174
|
-
<span class="hits">
|
|
27275
|
+
<li class="covered" data-hits="459" data-linenumber="80">
|
|
27276
|
+
<span class="hits">459</span>
|
|
27175
27277
|
|
|
27176
27278
|
<code class="ruby"> if path =~ %r{wp\-content/plugins}i</code>
|
|
27177
27279
|
</li>
|
|
27178
27280
|
|
|
27179
|
-
<li class="covered" data-hits="
|
|
27180
|
-
<span class="hits">
|
|
27281
|
+
<li class="covered" data-hits="303" data-linenumber="81">
|
|
27282
|
+
<span class="hits">303</span>
|
|
27181
27283
|
|
|
27182
27284
|
<code class="ruby"> path.gsub!('wp-content/plugins', plugins_dir)</code>
|
|
27183
27285
|
</li>
|
|
27184
27286
|
|
|
27185
|
-
<li class="covered" data-hits="
|
|
27186
|
-
<span class="hits">
|
|
27287
|
+
<li class="covered" data-hits="156" data-linenumber="82">
|
|
27288
|
+
<span class="hits">156</span>
|
|
27187
27289
|
|
|
27188
27290
|
<code class="ruby"> elsif path =~ /wp\-content/i</code>
|
|
27189
27291
|
</li>
|
|
@@ -27194,8 +27296,8 @@
|
|
|
27194
27296
|
<code class="ruby"> path.gsub!('wp-content', content_dir)</code>
|
|
27195
27297
|
</li>
|
|
27196
27298
|
|
|
27197
|
-
<li class="covered" data-hits="
|
|
27198
|
-
<span class="hits">
|
|
27299
|
+
<li class="covered" data-hits="60" data-linenumber="84">
|
|
27300
|
+
<span class="hits">60</span>
|
|
27199
27301
|
|
|
27200
27302
|
<code class="ruby"> elsif path[0] != '/' && sub_dir</code>
|
|
27201
27303
|
</li>
|
|
@@ -27218,8 +27320,8 @@
|
|
|
27218
27320
|
<code class="ruby"></code>
|
|
27219
27321
|
</li>
|
|
27220
27322
|
|
|
27221
|
-
<li class="covered" data-hits="
|
|
27222
|
-
<span class="hits">
|
|
27323
|
+
<li class="covered" data-hits="459" data-linenumber="88">
|
|
27324
|
+
<span class="hits">459</span>
|
|
27223
27325
|
|
|
27224
27326
|
<code class="ruby"> super(path)</code>
|
|
27225
27327
|
</li>
|