diff --git a/app/models/wp_version.rb b/app/models/wp_version.rb index 0f2ccaa0..0a817aff 100644 --- a/app/models/wp_version.rb +++ b/app/models/wp_version.rb @@ -50,5 +50,10 @@ module WPScan @vulnerabilities end + + # @return [ String ] + def release_date + @release_date ||= db_data['release_date'] + end end end diff --git a/app/views/cli/wp_version/version.erb b/app/views/cli/wp_version/version.erb index a2cc0893..b5397788 100644 --- a/app/views/cli/wp_version/version.erb +++ b/app/views/cli/wp_version/version.erb @@ -1,5 +1,5 @@ <% if @version -%> -<%= info_icon %> WordPress version <%= @version.number %> identified. +<%= info_icon %> WordPress version <%= @version.number %> identified (Released on <%= @version.release_date %>). <%= render('@finding', item: @version) -%> <% else -%> <%= notice_icon %> The WordPress version could not be detected. diff --git a/app/views/json/wp_version/version.erb b/app/views/json/wp_version/version.erb index 1066c23c..babf139e 100644 --- a/app/views/json/wp_version/version.erb +++ b/app/views/json/wp_version/version.erb @@ -1,6 +1,7 @@ <% if @version -%> "version": { "number": <%= @version.number.to_json %>, + "release_date": <%= @version.release_date.to_json %>, <%= render('@finding', item: @version) -%> }, <% else -%> diff --git a/spec/app/controllers/core_spec.rb b/spec/app/controllers/core_spec.rb index 475485bd..7172b023 100644 --- a/spec/app/controllers/core_spec.rb +++ b/spec/app/controllers/core_spec.rb @@ -22,7 +22,7 @@ describe WPScan::Controller::Core do # Ensures the :url is the first one and is correctly setup expect(cli_options.first.to_sym).to eql :url - expect(cli_options.first.required_unless).to match_array %i[update help version] + expect(cli_options.first.required_unless).to match_array %i[update help hh version] end end diff --git a/spec/app/models/wp_version_spec.rb b/spec/app/models/wp_version_spec.rb index 6e010908..1c4cbeb6 100644 --- a/spec/app/models/wp_version_spec.rb +++ b/spec/app/models/wp_version_spec.rb @@ -86,4 +86,10 @@ describe WPScan::WpVersion do end end end + + describe '#release_date' do + subject(:version) { described_class.new('3.8.1') } + + its(:release_date) { should eql '2014-01-23' } + end end diff --git a/spec/fixtures/db/wordpresses.json b/spec/fixtures/db/wordpresses.json index 8d6c3914..197d471e 100644 --- a/spec/fixtures/db/wordpresses.json +++ b/spec/fixtures/db/wordpresses.json @@ -1,5 +1,9 @@ { + "4.0": { + "release_date" : "2014-09-04" + }, "3.8.1": { + "release_date" : "2014-01-23", "vulnerabilities" : [ { "created_at" : "2014-08-01T10:58:19.000Z", @@ -25,6 +29,7 @@ ] }, "3.8": { + "release_date" : "2013-12-12", "vulnerabilities" : [ { "references": { diff --git a/spec/output/wp_version/confirmed_multiples.cli_no_colour b/spec/output/wp_version/confirmed_multiples.cli_no_colour index a364a6ac..75eb1e2b 100644 --- a/spec/output/wp_version/confirmed_multiples.cli_no_colour +++ b/spec/output/wp_version/confirmed_multiples.cli_no_colour @@ -1,4 +1,4 @@ -[+] WordPress version 4.0 identified. +[+] WordPress version 4.0 identified (Released on 2014-09-04). | Detected By: rspec | Confirmed By: | Confirmed 1 diff --git a/spec/output/wp_version/confirmed_multiples.json b/spec/output/wp_version/confirmed_multiples.json index 0971855f..bd47879a 100644 --- a/spec/output/wp_version/confirmed_multiples.json +++ b/spec/output/wp_version/confirmed_multiples.json @@ -1,6 +1,7 @@ { "version": { "number": "4.0", + "release_date": "2014-09-04", "found_by": "rspec", "confidence": 0, "interesting_entries": [ diff --git a/spec/output/wp_version/confirmed_one.cli_no_colour b/spec/output/wp_version/confirmed_one.cli_no_colour index 3b8e23f2..75c89109 100644 --- a/spec/output/wp_version/confirmed_one.cli_no_colour +++ b/spec/output/wp_version/confirmed_one.cli_no_colour @@ -1,4 +1,4 @@ -[+] WordPress version 4.0 identified. +[+] WordPress version 4.0 identified (Released on 2014-09-04). | Detected By: rspec | Confirmed By: Confirmed 1 | - IE1 diff --git a/spec/output/wp_version/confirmed_one.json b/spec/output/wp_version/confirmed_one.json index 8156a6fa..5d748206 100644 --- a/spec/output/wp_version/confirmed_one.json +++ b/spec/output/wp_version/confirmed_one.json @@ -1,6 +1,7 @@ { "version": { "number": "4.0", + "release_date": "2014-09-04", "found_by": "rspec", "confidence": 0, "interesting_entries": [ diff --git a/spec/output/wp_version/not_confirmed_entries.cli_no_colour b/spec/output/wp_version/not_confirmed_entries.cli_no_colour index 28f6559e..6cf39f33 100644 --- a/spec/output/wp_version/not_confirmed_entries.cli_no_colour +++ b/spec/output/wp_version/not_confirmed_entries.cli_no_colour @@ -1,4 +1,4 @@ -[+] WordPress version 4.0 identified. +[+] WordPress version 4.0 identified (Released on 2014-09-04). | Detected By: rspec | - IE1 | - IE2 diff --git a/spec/output/wp_version/not_confirmed_entries.json b/spec/output/wp_version/not_confirmed_entries.json index bf29a95f..204d071f 100644 --- a/spec/output/wp_version/not_confirmed_entries.json +++ b/spec/output/wp_version/not_confirmed_entries.json @@ -1,6 +1,7 @@ { "version": { "number": "4.0", + "release_date": "2014-09-04", "found_by": "rspec", "confidence": 0, "interesting_entries": [ diff --git a/spec/output/wp_version/not_confirmed_no_entries.cli_no_colour b/spec/output/wp_version/not_confirmed_no_entries.cli_no_colour index 53baf371..fd5340cb 100644 --- a/spec/output/wp_version/not_confirmed_no_entries.cli_no_colour +++ b/spec/output/wp_version/not_confirmed_no_entries.cli_no_colour @@ -1,3 +1,3 @@ -[+] WordPress version 4.0 identified. +[+] WordPress version 4.0 identified (Released on 2014-09-04). | Detected By: rspec diff --git a/spec/output/wp_version/not_confirmed_no_entries.json b/spec/output/wp_version/not_confirmed_no_entries.json index 25276fa4..a7e10916 100644 --- a/spec/output/wp_version/not_confirmed_no_entries.json +++ b/spec/output/wp_version/not_confirmed_no_entries.json @@ -1,6 +1,7 @@ { "version": { "number": "4.0", + "release_date": "2014-09-04", "found_by": "rspec", "confidence": 0, "interesting_entries": [ diff --git a/spec/output/wp_version/with_vulns.cli_no_colour b/spec/output/wp_version/with_vulns.cli_no_colour index f8a73300..8c55466c 100644 --- a/spec/output/wp_version/with_vulns.cli_no_colour +++ b/spec/output/wp_version/with_vulns.cli_no_colour @@ -1,4 +1,4 @@ -[+] WordPress version 3.8.1 identified. +[+] WordPress version 3.8.1 identified (Released on 2014-01-23). | Detected By: rspec | | [!] 2 vulnerabilities identified: diff --git a/spec/output/wp_version/with_vulns.json b/spec/output/wp_version/with_vulns.json index c77bc2a7..2b720834 100644 --- a/spec/output/wp_version/with_vulns.json +++ b/spec/output/wp_version/with_vulns.json @@ -1,6 +1,7 @@ { "version": { "number": "3.8.1", + "release_date": "2014-01-23", "found_by": "rspec", "confidence": 0, "interesting_entries": [