Files
metasploit-gs/lib/msf/http/wordpress/base.rb
T

24 lines
965 B
Ruby
Raw Normal View History

2013-08-21 12:45:15 +02:00
# -*- coding: binary -*-
2013-08-22 17:33:35 +02:00
module Msf::HTTP::Wordpress::Base
2013-09-05 14:11:03 -05:00
# Checks if the site is online and running wordpress
#
# @return [Rex::Proto::Http::Response,nil] Returns the HTTP response if the site is online and running wordpress, nil otherwise
def wordpress_and_online?
2014-07-22 17:02:35 +02:00
res = send_request_cgi(
'method' => 'GET',
'uri' => normalize_uri(target_uri.path)
)
2014-07-22 19:49:58 +02:00
wordpress_detect_regexes = [
/["'][^"']*\/#{Regexp.escape(wp_content_dir)}\/[^"']*["']/i,
/<link rel=["']wlwmanifest["'].*href=["'].*\/wp-includes\/wlwmanifest\.xml["'] \/>/i,
/<link rel=["']pingback["'].*href=["'].*\/xmlrpc\.php["'](?: \/)*>/i
]
return res if res && res.code == 200 && res.body && wordpress_detect_regexes.any? { |r| res.body =~ r }
2014-07-22 17:02:35 +02:00
return nil
2014-07-22 19:49:58 +02:00
rescue ::Rex::ConnectionRefused, ::Rex::HostUnreachable, ::Rex::ConnectionTimeout => e
print_error("#{peer} - Error connecting to #{target_uri}: #{e}")
2014-07-22 17:02:35 +02:00
return nil
2013-09-05 14:11:03 -05:00
end
2013-08-21 12:45:15 +02:00
end