Class: Ronin::Exploits::RFI

Inherits:
WebVuln show all
Includes:
Mixins::HasPayload
Defined in:
lib/ronin/exploits/rfi.rb

Overview

Represents a Remote File Inclusion (RFI) exploit.

Example

require 'ronin/exploits/rfi'

module Ronin
  module Exploits
    class MyExploit < RFI

      register 'my_exploit'

      base_path '/path/to/page.php'
      query_param 'template'

    end
  end
end

Since:

  • 1.0.0

Constant Summary

Constants included from Mixins::HTTP

Mixins::HTTP::HTTP_USER_AGENT_ALIASES

Instance Attribute Summary

Attributes included from Mixins::HasPayload

#payload

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Mixins::HasPayload

included, #initialize, #perform_build, #perform_cleanup, #perform_launch, #perform_validate

Methods inherited from WebVuln

base_path, cookie, #cookie, cookie_param, form_data, #form_data, form_param, header_name, headers, #headers, query_param, referer, #referer, request_method, #test, #url, #web_vuln_kwargs

Methods included from Mixins::HTTP

#http, #http_allowed_methods, #http_cookie, #http_copy, #http_delete, #http_get, #http_get_body, #http_get_cookies, #http_get_headers, #http_head, #http_headers, #http_lock, #http_mkcol, #http_move, #http_ok?, #http_options, #http_password, #http_patch, #http_post, #http_post_body, #http_post_headers, #http_powered_by_header, #http_propfind, #http_proppatch, #http_proxy, #http_put, #http_request, #http_response_body, #http_response_headers, #http_response_status, #http_server_header, #http_trace, #http_unlock, #http_user, #http_user_agent, included

Methods inherited from Exploit

#NotVulnerable, #Unknown, #Vulnerable, advisories, advisory, #build, #cleanup, disclosed?, disclosure_date, exploit, #exploit, #fail, #initialize, #perform_build, #perform_cleanup, #perform_launch, #perform_test, #perform_validate, quality, register, release_date, released?, software, software_versions, #test, #validate

Class Method Details

.exploit_typeSymbol

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Note:

This is used internally to map an exploit class to a printable type.

Returns the type or kind of exploit.

Returns:

  • (Symbol)

Since:

  • 1.0.0



83
84
85
# File 'lib/ronin/exploits/rfi.rb', line 83

def self.exploit_type
  :rfi
end

Instance Method Details

#launchObject

Launches the RFI exploit with the payload.

Since:

  • 1.0.0



103
104
105
# File 'lib/ronin/exploits/rfi.rb', line 103

def launch
  vuln.exploit(@payload)
end

#vulnRonin::Vulns::RFI

The RFI vulnerability to exploit.

Returns:

  • (Ronin::Vulns::RFI)

Since:

  • 1.0.0



92
93
94
95
96
97
98
# File 'lib/ronin/exploits/rfi.rb', line 92

def vuln
  @vuln ||= Vulns::RFI.new(
              url, test_script_url: params[:test_script_url],
                   filter_bypass:   params[:filter_bypass],
                   **web_vuln_kwargs
            )
end