app/finders/passwords/xml_rpc.rb
# frozen_string_literal: true
module WPScan
module Finders
module Passwords
# Password attack against the XMLRPC interface
class XMLRPC < CMSScanner::Finders::Finder
include CMSScanner::Finders::Finder::BreadthFirstDictionaryAttack
def login_request(username, password)
target.method_call('wp.getUsersBlogs', [username, password], cache_ttl: 0)
end
def valid_credentials?(response)
response.code == 200 && response.body.include?('blogName')
end
def errored_response?(response)
response.code != 200 && response.body !~ /Incorrect username or password/i
end
end
end
end
end