31 lines
819 B
Ruby
31 lines
819 B
Ruby
# frozen_string_literal: true
|
|
|
|
module WPScan
|
|
module Controller
|
|
# Controller to handle the API token
|
|
class VulnApi < CMSScanner::Controller::Base
|
|
def cli_options
|
|
[
|
|
OptString.new(['--api-token TOKEN', 'The WPVulnDB API Token to display vulnerability data'])
|
|
]
|
|
end
|
|
|
|
def before_scan
|
|
return unless ParsedCli.api_token
|
|
|
|
DB::VulnApi.token = ParsedCli.api_token
|
|
|
|
api_status = DB::VulnApi.status
|
|
|
|
raise Error::InvalidApiToken if api_status['error']
|
|
raise Error::ApiLimitReached if api_status['requests_remaining'] == 0
|
|
raise api_status['http_error'] if api_status['http_error']
|
|
end
|
|
|
|
def after_scan
|
|
output('status', status: DB::VulnApi.status, api_requests: WPScan.api_requests)
|
|
end
|
|
end
|
|
end
|
|
end
|