Class: Ronin::Exploits::SSTI
- Defined in:
- lib/ronin/exploits/ssti.rb
Overview
Represents a Server Side Template Injection (SSTI) exploit.
Example
require 'ronin/exploits/ssti'
module Ronin
module Exploits
class MyExploit < SSTI
register 'my_exploit'
base_path '/path/to/page.php'
query_param 'name'
escape_expr ->(expr) { "${{#{expr}}}" }
end
end
end
Constant Summary
Constants included from Mixins::HTTP
Mixins::HTTP::HTTP_USER_AGENT_ALIASES
Instance Attribute Summary
Attributes included from Mixins::HasPayload
Class Method Summary collapse
-
.escape_expr(new_escape_expr = nil) ⇒ Proc?
Gets or sets the exploit's SSTI escape logic.
-
.exploit_type ⇒ Symbol
private
Returns the type or kind of exploit.
Instance Method Summary collapse
-
#vuln ⇒ Ronin::Vulns::SSTI
The Server Side Template Injection (SSTI) vulnerability to exploit.
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::HasPayload
included, #initialize, #perform_build, #perform_cleanup, #perform_launch, #perform_validate
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, #launch, #perform_build, #perform_cleanup, #perform_launch, #perform_test, #perform_validate, quality, register, release_date, released?, software, software_versions, #test, #validate
Class Method Details
.escape_expr(new_escape_expr = nil) ⇒ Proc?
Gets or sets the exploit's SSTI escape logic.
73 74 75 76 77 78 79 80 81 |
# File 'lib/ronin/exploits/ssti.rb', line 73 def self.escape_expr(new_escape_expr=nil) if new_escape_expr @escape_expr = new_escape_expr else @escape_expr || if superclass < SSTI superclass.escape_expr end end end |
.exploit_type ⇒ Symbol
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.
This is used internally to map an exploit class to a printable type.
Returns the type or kind of exploit.
93 94 95 |
# File 'lib/ronin/exploits/ssti.rb', line 93 def self.exploit_type :ssti end |
Instance Method Details
#vuln ⇒ Ronin::Vulns::SSTI
The Server Side Template Injection (SSTI) vulnerability to exploit.
102 103 104 105 |
# File 'lib/ronin/exploits/ssti.rb', line 102 def vuln @vuln ||= Vulns::SSTI.new(url, escape: self.class.escape_expr, **web_vuln_kwargs) end |