diff --git a/modules/exploits/multi/http/gitlist_arg_injection.rb b/modules/exploits/multi/http/gitlist_arg_injection.rb new file mode 100644 index 0000000000..3b4b17b8fa --- /dev/null +++ b/modules/exploits/multi/http/gitlist_arg_injection.rb @@ -0,0 +1,65 @@ +## +# This module requires Metasploit: https://metasploit.com/download +# Current source: https://github.com/rapid7/metasploit-framework +## + +class MetasploitModule < Msf::Exploit::Remote + Rank = NormalRanking + + include Msf::Exploit::CmdStager + include Msf::Exploit::Remote::HttpClient + + def initialize(info={}) + super(update_info(info, + 'Name' => "[Vendor] [Software] [Root Cause] [Vulnerability type]", + 'Description' => %q{ + Say something that the user might need to know + }, + 'License' => MSF_LICENSE, + 'Author' => [ 'Kacper Szurek', # EDB POC + 'Shelby Pace' # Metasploit Module + ], + 'References' => + [ + [ 'EDB', '44548' ] + ], + 'Platform' => 'win', + 'Targets' => + [ + [ 'System or software version', + { + 'Ret' => 0x41414141 # This will be available in `target.ret` + } + ] + ], + 'Payload' => + { + 'BadChars' => "\x00" + }, + 'Privileged' => false, + 'DisclosureDate' => "Apr 26 2018", + 'DefaultTarget' => 0)) + + end + + def make_request + uri = normalize_uri(target_uri.path) + + res = send_request_cgi( + 'method' => 'GET', + 'uri' => uri + ) + + if res && res.code == 200 + print_good(res.body) + else + print_error("Can't reach Gitlist") + end + end + + def exploit + # Main function + make_request + end + +end