56 lines
1.3 KiB
Ruby
56 lines
1.3 KiB
Ruby
# encoding: UTF-8
|
|
|
|
class StatsPlugin < Plugin
|
|
|
|
def initialize
|
|
super(author: 'WPScanTeam - Christian Mehlmauer')
|
|
|
|
register_options(
|
|
['--stats', '--s', 'Show WpScan Database statistics']
|
|
)
|
|
end
|
|
|
|
def run(options = {})
|
|
if options[:stats]
|
|
puts 'Wpscan Databse Statistics:'
|
|
puts '--------------------------'
|
|
puts "[#] Total vulnerable plugins: #{vuln_plugin_count}"
|
|
puts "[#] Total vulnerable themes: #{vuln_theme_count}"
|
|
puts "[#] Total plugin vulnerabilities: #{plugin_vulns_count}"
|
|
puts "[#] Total theme vulnerabilities: #{theme_vulns_count}"
|
|
puts "[#] Total plugins to enumerate: #{total_plugins}"
|
|
puts "[#] Total themes to enumerate: #{total_themes}"
|
|
puts
|
|
end
|
|
end
|
|
|
|
def vuln_plugin_count(file=PLUGINS_VULNS_FILE)
|
|
xml(file).xpath('count(//plugin)').to_i
|
|
end
|
|
|
|
def vuln_theme_count(file=THEMES_VULNS_FILE)
|
|
xml(file).xpath('count(//theme)').to_i
|
|
end
|
|
|
|
def plugin_vulns_count(file=PLUGINS_VULNS_FILE)
|
|
xml(file).xpath('count(//vulnerability)').to_i
|
|
end
|
|
|
|
def theme_vulns_count(file=THEMES_VULNS_FILE)
|
|
xml(file).xpath('count(//vulnerability)').to_i
|
|
end
|
|
|
|
def total_plugins(file=PLUGINS_FULL_FILE)
|
|
lines_in_file(file)
|
|
end
|
|
|
|
def total_themes(file=THEMES_FULL_FILE)
|
|
lines_in_file(file)
|
|
end
|
|
|
|
def lines_in_file(file)
|
|
IO.readlines(file).size
|
|
end
|
|
|
|
end
|